Releases: bolsinga/itunes_json
Releases · bolsinga/itunes_json
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
Overview
- Output is always sorted.
- Repair JSON are pruned to just what will be in a database.
- DB output no longer has kind, dateModified, or size.
What's Changed
- sort the tracks prior to emitting output by @bolsinga in #201
- remove dateModified from the sql output by @bolsinga in #202
- remove size from the sql output by @bolsinga in #203
- Add RowAlbumInterface by @bolsinga in #205
- Remove kind table by @bolsinga in #204
- Add RowArtistInterface by @bolsinga in #206
- do not need trackKind func by @bolsinga in #207
- Add RowSongInterface and Track conforms to it in an extension. by @bolsinga in #208
- Add RowPlayInterface and Track conforms to it in an extension by @bolsinga in #209
- Remove TrackRowItem by @bolsinga in #210
- SQLSelectID and SQLStatement protocols do not add value by @bolsinga in #211
- Do not use extensions for insert / select by @bolsinga in #212
- SQLSourceEncoder is now a struct by @bolsinga in #213
- SQLSourceEncoder.Encoder is now a struct by @bolsinga in #214
- Refactor For TrackRowEncoder by @bolsinga in #215
- no longer log kind and podcast with SQL errors by @bolsinga in #216
- sort by a track's traits not persistentID by @bolsinga in #217
- Do not sort with the sort names :) by @bolsinga in #218
- Add Track.pruned and use it in Repair. by @bolsinga in #219
- just call Repair initializer once. by @bolsinga in #220
- Fix and then filter and prune by @bolsinga in #221
Full Changelog: 1.4.1...1.4.2
1.4.1
1.4
1.3
Now can output directly to sqlite3 db files using the sqlite3 API.
What's Changed
- Simplify and rename KindTableData by @bolsinga in #117
- separate sql schema into Track extensions by @bolsinga in #118
- Separate isSQLEncodable into its own extension file by @bolsinga in #119
- Add SQLRow protocol by @bolsinga in #120
- Add KindRow which conforms to SQLRow by @bolsinga in #121
- separate SQLRows into separate files by @bolsinga in #122
- Separate file for RowPlay by @bolsinga in #123
- Add SortableName by @bolsinga in #124
- Refactor how duplicate artist names with mismatching sortnames are logged by @bolsinga in #125
- make row properties private for more clarity by @bolsinga in #126
- Add SortableName computed properties by @bolsinga in #127
- Add QuoteEscaped property wrapper by @bolsinga in #128
- missed escaped quotable albums names by @bolsinga in #129
- Add Track RowKind extension by @bolsinga in #130
- Add Track RowArtist extension by @bolsinga in #131
- Add Track RowAlbum extension by @bolsinga in #132
- Add Track RowSong extension by @bolsinga in #133
- Add Track RowPlay extension by @bolsinga in #134
- more QuoteEscaped projected values. by @bolsinga in #135
- Invert so that SQLRows do not know about Track by @bolsinga in #136
- separate sql safe properties into its own file by @bolsinga in #137
- Build table sql with more shared code. by @bolsinga in #138
- Get row data from each track by @bolsinga in #139
- Building RowPlay uses RowSong by @bolsinga in #140
- more RowPlay fileprivate Track items into its file by @bolsinga in #141
- use RowSong.itunesid by @bolsinga in #142
- artistSelect is a computed property of RowArtist by @bolsinga in #143
- RowAlbum has computed albumSelect property by @bolsinga in #144
- Add RowSong.songSelect computed property by @bolsinga in #145
- artistName is now fileprivate Track extension by @bolsinga in #146
- RowKind now has computed kindSelect property by @bolsinga in #147
- Update and simplify SQLRow protocol by @bolsinga in #148
- RowSong contains data for the other rows so no need to store them by @bolsinga in #149
- Add Destination.emit func by @bolsinga in #150
- raise empty array checks up one level by @bolsinga in #151
- Add Destination.db by @bolsinga in #152
- QuoteEscaped wraps escaped strings in single quotes like %Q by @bolsinga in #153
- Enclose select properties in parenthesis by @bolsinga in #154
- QuoteEscaped via StringInterpolation by @bolsinga in #155
- QuoteEscaped via StringInterpolation instead of property wrapper by @bolsinga in #156
- use shorter string interpolation parameter name by @bolsinga in #157
- Separate out some SQL protcols by @bolsinga in #158
- RowPlay just knows song SQLSelectID by @bolsinga in #159
- RowSong only knows about SQLSelectIDs by @bolsinga in #160
- explicitly adopt safeQuoted instead of a default for all strings by @bolsinga in #161
- Rename sql: to options: by @bolsinga in #162
- rename private func and declare it so by @bolsinga in #163
- Use fully named StringInterpolation by @bolsinga in #164
- Allow sql: StringInterpolation to emit ? for bindable SQLite3 statements by @bolsinga in #165
- Separate encoding rows from sql source statements by @bolsinga in #166
- Declare Destination.emit async by @bolsinga in #167
- Move Database into its own file by @bolsinga in #168
- Add Database.execute func by @bolsinga in #169
- Expanded Database by @bolsinga in #170
- Rename SQLRowEncoder to TrackRowEncoder by @bolsinga in #171
- Add & Use TrackRowItem by @bolsinga in #172
- Add TrackRow for TrackRowEncoder by @bolsinga in #173
- Remove SQLInsert protocol by @bolsinga in #174
- TrackRowEncoder sorts items for consistency by @bolsinga in #175
- RowPlay no longer stores its RowSong by @bolsinga in #176
- RowKind is now in TrackRow by @bolsinga in #177
- RowAlbum is now in TrackRow by @bolsinga in #178
- RowArtist is now in TrackRow by @bolsinga in #179
- Add optional IDs parameter to SQLBindableStatement.bindInsert() by @bolsinga in #180
- Pass artist album kind id in same order always by @bolsinga in #181
- Emit songs into db with SQLITE API by @bolsinga in #182
- Emit plays with DBEncoder by @bolsinga in #183
- improve some source documentation and argument help by @bolsinga in #184
- Allow outpufile naming by @bolsinga in #185
- db id lookups allocated with row min capacity by @bolsinga in #186
- Be sure to reserveCapacity in the [TrackRow] in TrackRowEncoder by @bolsinga in #187
- Insert the songid last into RowPlay by @bolsinga in #188
- enable FOREIGN_KEYS for sqlite api. by @bolsinga in #189
- sqlite3_step errors need to use db.handle by @bolsinga in #190
- rename logging subsystem to validation by @bolsinga in #191
- add func to emit repair json string by @bolsinga in #192
- add logging for sqlite library calls by @bolsinga in #193
- update actions to xcode 15.2 by @bolsinga in #194
- journal_mode WAL and synchronous NORMAL by @bolsinga in #195
Full Changelog: 1.2...1.3
1.2
- Allow json to be "repaired". This means as track counts, sort names, and more are fixed over time, they can be back applied to older json files so that they have the same data.
- Add lots of logging for SQL constraints while building the SQL output.
- This build allows all the historical data I have to be encoded to SQL with consistent data and without errors.
What's Changed
- Revert "read in xml json, write out xml json with sorted keys (#93)" by @bolsinga in #94
- remove xml json cleanup code by @bolsinga in #95
- do not encode kind==book by @bolsinga in #96
- do not encode this kind of app by @bolsinga in #97
- Add Logger statements for missing required data. by @bolsinga in #98
- log less information so that more duplicate logs are created by @bolsinga in #99
- more kinds to ignore by @bolsinga in #100
- refine voice memos check by @bolsinga in #101
- log about missing trackNumber by @bolsinga in #102
- Log artist name sorting issue by @bolsinga in #103
- log when no artist name found by @bolsinga in #104
- log sql subsystem with separate categories for each log type by @bolsinga in #105
- log when trackNumber is zero or less by @bolsinga in #106
- add separate guard and log for trackNumber > 0 by @bolsinga in #107
- Allow json to be repaired. by @bolsinga in #108
- ensure song name is not empty string by @bolsinga in #109
- log if year is not > 0 by @bolsinga in #110
- allow repairSource json to be passed as input by @bolsinga in #111
- log about bad years but do not return -1 by @bolsinga in #112
- remove log about zero year by @bolsinga in #113
- add composer to song table by @bolsinga in #114
- add dateModified to song by @bolsinga in #115
- handle if some songs have play dates but not play counts by @bolsinga in #116
Full Changelog: 1.1.1...1.2
1.1.1
- Fix some missing xml json value types.
- Add xml json reexport option in order to see the json with sorted keys as compared to the json with corrected value types. This is to verify the validity of the output.
What's Changed
- Add help information for source and destination flags by @bolsinga in #86
- add datereleased to song table by @bolsinga in #87
- Add comments to song table if present by @bolsinga in #88
- escape the quotes in comments by @bolsinga in #89
- albumRating and hd properties also need to be non-string values by @bolsinga in #91
- Convert ratingComputed, videoHeight, and videoWidth value types too by @bolsinga in #92
- read in xml json, write out xml json with sorted keys by @bolsinga in #93
Full Changelog: 1.1...1.1.1