e621_export_downloader 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ca5e1aa72caa7ce565b4887222579025187c23a13f86ec2b818367991ee6cc5
4
- data.tar.gz: 393166c4a129496f7ecdd409899b644750b98a623d6501ca72c1f937d0645b62
3
+ metadata.gz: 6d58e880077e657ef28542f3873a57f6b2759c2dc5cc3ace7b39b0b016134b1d
4
+ data.tar.gz: 93ba667cb1a85c203cf861aeedfc36ae4ba8dffeb9bc50c08df275a8ccd27844
5
5
  SHA512:
6
- metadata.gz: 6a2ea533d91b0f8dc403d9f4a287880815e1c955d76b28897cb80b55593c570524099760dfa37f8924c80e340cc83800955da0a5e14a042e270a9bea64f8047c
7
- data.tar.gz: 7a38db5401d422e48ae51470a5363bd5bfee65c4e2f0a6095e2fb3803123ee38a7dee90afaf4904f3f3390f593f33b6064ec7f99fcb94ba79f8ea5e6d21dde25
6
+ metadata.gz: af0d7f73fc67b9c2a291ca5c8de1e200dcd09e42ddf31d4c40fb07938a1f25a13b428dff8ad6e3a44190b6b2c3a672991d8f5b9a40aed2e808286512bf60812e
7
+ data.tar.gz: c012e57c2fc91e8d3991f47eb59842947a81acad6137a52f1ad768b8dcaeeb9990b13ffdad5d8d6c398a9dd6ba768928183163af14670398ce78b7874ccdf99b
data/CHANGELOG.md ADDED
@@ -0,0 +1,81 @@
1
+ # Changelog
2
+
3
+ ## [0.0.17] - 2026-06-29
4
+
5
+ _0.0.17_
6
+
7
+ ## [0.0.16] - 2026-06-24
8
+
9
+ ### Added
10
+ - Add new dbexport fields (from: e621ng/e621ng#2181, pending: e621ng/e621ng#2222)
11
+
12
+ ## [0.0.15] - 2026-06-14
13
+
14
+ ### Added
15
+ - Add method to track download progress
16
+
17
+ ## [0.0.14] - 2026-06-14
18
+
19
+ ### Changed
20
+ - optimize csv import
21
+
22
+ ## [0.0.13] - 2026-06-13
23
+
24
+ ### Added
25
+ - Add stored row count & text indexes
26
+
27
+ ## [0.0.12] - 2026-06-12
28
+
29
+ ### Fixed
30
+ - Fix post versions missing post_id
31
+
32
+ ## [0.0.11] - 2026-06-12
33
+
34
+ ### Fixed
35
+ - Fix csv import
36
+
37
+ ## [0.0.10] - 2026-06-12
38
+
39
+ ### Fixed
40
+ - Fix models
41
+
42
+ ## [0.0.9] - 2026-06-12
43
+
44
+ ### Fixed
45
+ - Fix parsing
46
+
47
+ ## [0.0.8] - 2026-06-12
48
+
49
+ ### Added
50
+ - Add csv import function to models
51
+
52
+ ## [0.0.7] - 2026-06-12
53
+
54
+ ### Fixed
55
+ - Fix railtie
56
+
57
+ ## [0.0.6] - 2026-06-12
58
+
59
+ _Rails Migration & models_
60
+
61
+ ## [0.0.5] - 2026-06-12
62
+
63
+ _force republish_
64
+
65
+ ## [0.0.4] - 2026-06-12
66
+
67
+ _db export changes_
68
+
69
+ ## [0.0.3] - 2026-05-19
70
+
71
+ ### Added
72
+ - Add activejob serializer
73
+
74
+ ## [0.0.2] - 2026-05-05
75
+
76
+ ### Fixed
77
+ - Fix Types serialization
78
+
79
+ ## [0.0.1] - 2026-05-05
80
+
81
+ _Initial Commit_
@@ -4,7 +4,7 @@
4
4
  # loaded by bundler
5
5
  module E621ExportDownloader
6
6
  module Constants
7
- VERSION = "0.0.16"
7
+ VERSION = "0.0.17"
8
8
  WEBSITE = "https://github.com/DonovanDMC/E621ExportDownloader.rb"
9
9
  end
10
10
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  class CreateE621Tables < ActiveRecord::Migration<%= migration_version %>
4
4
  def change
5
- enable_extension("pg_trgm")
6
-
7
5
  <% if use_schema? -%>
8
6
  reversible do |r|
9
7
  r.up { execute("CREATE SCHEMA <%= schema %>") }
@@ -13,48 +11,46 @@ class CreateE621Tables < ActiveRecord::Migration<%= migration_version %>
13
11
  <% end -%>
14
12
  create_table(<%= table_ref("artists") %>, id: :bigint, default: nil, force: :cascade) do |t|
15
13
  t.datetime(:created_at, null: false)
16
- t.bigint(:creator_id, null: false, index: true)
14
+ t.bigint(:creator_id, null: false)
17
15
  t.string(:group_name)
18
16
  t.boolean(:is_active, null: false)
19
17
  t.boolean(:is_locked, null: false)
20
- t.bigint(:linked_user_id, index: true)
21
- t.string(:name, null: false, index: { unique: true })
18
+ t.bigint(:linked_user_id)
19
+ t.string(:name, null: false)
22
20
  t.text(:other_names, array: true, null: false, default: [])
23
21
  t.datetime(:updated_at, null: false)
24
- t.text(:urls)
25
- t.index("group_name gin_trgm_ops", using: :gin)
26
- t.index("name gin_trgm_ops", using: :gin)
22
+ t.text(:active_urls, null: false)
23
+ t.text(:inactive_urls, null: false)
27
24
  end
28
25
 
29
26
  create_table(<%= table_ref("bulk_update_requests") %>, id: :bigint, default: nil, force: :cascade) do |t|
30
- t.bigint(:approver_id, index: true)
27
+ t.bigint(:approver_id)
31
28
  t.datetime(:created_at, null: false)
32
- t.bigint(:forum_topic_id, index: true)
33
- t.bigint(:forum_post_id, index: true)
29
+ t.bigint(:forum_topic_id)
30
+ t.bigint(:forum_post_id)
34
31
  t.text(:script, null: false)
35
- t.string(:status, null: false, index: true)
32
+ t.string(:status, null: false)
36
33
  t.string(:title)
37
34
  t.datetime(:updated_at, null: false)
38
- t.bigint(:user_id, null: false, index: true)
39
- t.index("script gin_trgm_ops", using: :gin)
40
- t.index("title gin_trgm_ops", using: :gin)
35
+ t.bigint(:user_id, null: false)
36
+ t.integer(:down_votes, null: false)
37
+ t.integer(:meh_votes, null: false)
38
+ t.integer(:up_votes, null: false)
41
39
  end
42
40
 
43
41
  create_table(<%= table_ref("pools") %>, id: :bigint, default: nil, force: :cascade) do |t|
44
42
  t.string(:category, null: false)
45
43
  t.datetime(:created_at, null: false)
46
- t.bigint(:creator_id, null: false, index: true)
44
+ t.bigint(:creator_id, null: false)
47
45
  t.text(:description, null: false)
48
46
  t.boolean(:is_active, null: false)
49
- t.string(:name, null: false, index: true)
50
- t.bigint(:post_ids, array: true, null: false, default: [], index: { using: :gin })
47
+ t.string(:name, null: false)
48
+ t.bigint(:post_ids, array: true, null: false)
51
49
  t.datetime(:updated_at)
52
- t.index("description gin_trgm_ops", using: :gin)
53
- t.index("name gin_trgm_ops", using: :gin)
54
50
  end
55
51
 
56
52
  create_table(<%= table_ref("posts") %>, id: :bigint, default: nil, force: :cascade) do |t|
57
- t.bigint(:approver_id, index: true)
53
+ t.bigint(:approver_id)
58
54
  t.bigint(:change_seq, null: false)
59
55
  t.integer(:comment_count, null: false)
60
56
  t.datetime(:created_at, null: false)
@@ -66,112 +62,116 @@ class CreateE621Tables < ActiveRecord::Migration<%= migration_version %>
66
62
  t.bigint(:file_size, null: false)
67
63
  t.integer(:image_height, null: false)
68
64
  t.integer(:image_width, null: false)
69
- t.boolean(:is_deleted, null: false, index: true)
70
- t.boolean(:is_flagged, null: false, index: true)
71
- t.boolean(:is_note_locked, null: false, index: true)
72
- t.boolean(:is_pending, null: false, index: true)
73
- t.boolean(:is_rating_locked, null: false, index: true)
74
- t.boolean(:is_status_locked, null: false, index: true)
65
+ t.boolean(:is_deleted, null: false)
66
+ t.boolean(:is_flagged, null: false)
67
+ t.boolean(:is_note_locked, null: false)
68
+ t.boolean(:is_pending, null: false)
69
+ t.boolean(:is_rating_locked, null: false)
70
+ t.boolean(:is_status_locked, null: false)
75
71
  t.text(:locked_tags, null: false)
76
- t.string(:md5, index: { unique: true }, null: false)
77
- t.bigint(:parent_id, index: true)
78
- t.string(:rating, null: false, index: true)
72
+ t.string(:md5, null: false)
73
+ t.bigint(:parent_id)
74
+ t.string(:rating, null: false)
79
75
  t.integer(:score, null: false)
80
76
  t.text(:source, null: false)
81
77
  t.text(:tag_string, null: false)
82
78
  t.integer(:up_score, null: false)
83
- t.datetime(:updated_at, index: true)
84
- t.bigint(:uploader_id, index: true)
85
- t.index("description gin_trgm_ops", using: :gin)
86
- t.index("source gin_trgm_ops", using: :gin)
87
- t.index("tag_string gin_trgm_ops", using: :gin)
79
+ t.datetime(:updated_at)
80
+ t.bigint(:uploader_id)
81
+ t.string(:bg_color)
82
+ t.datetime(:last_noted_at)
83
+ t.datetime(:last_commented_at)
88
84
  end
89
85
 
90
86
  create_table(<%= table_ref("post_replacements") %>, id: :bigint, default: nil, force: :cascade) do |t|
91
- t.bigint(:approver_id, index: true)
87
+ t.bigint(:approver_id)
92
88
  t.datetime(:created_at, null: false)
93
- t.bigint(:creator_id, null: false, index: true)
94
- t.string(:file_ext, null: false, index: true)
95
- t.string(:file_name, null: false, index: true)
96
- t.bigint(:file_size, null: false, index: true)
97
- t.integer(:image_height, null: false, index: true)
98
- t.integer(:image_width, null: false, index: true)
99
- t.string(:md5, null: false, index: true)
100
- t.bigint(:post_id, null: false, index: true)
89
+ t.bigint(:creator_id, null: false)
90
+ t.string(:file_ext, null: false)
91
+ t.string(:file_name, null: false)
92
+ t.bigint(:file_size, null: false)
93
+ t.integer(:image_height, null: false)
94
+ t.integer(:image_width, null: false)
95
+ t.string(:md5, null: false)
96
+ t.bigint(:post_id, null: false)
101
97
  t.text(:reason, null: false)
102
98
  t.text(:source)
103
- t.string(:status, null: false, index: true)
99
+ t.string(:status, null: false)
104
100
  t.datetime(:updated_at, null: false)
105
- t.index("reason gin_trgm_ops", using: :gin)
106
- t.index("source gin_trgm_ops", using: :gin)
107
101
  end
108
102
 
109
103
  create_table(<%= table_ref("post_versions") %>, id: :bigint, default: nil, force: :cascade) do |t|
110
104
  t.text(:added_locked_tags, array: true, null: false, default: [])
111
105
  t.text(:added_tags, array: true, null: false, default: [])
112
106
  t.text(:description)
113
- t.boolean(:description_changed, null: false, index: true)
107
+ t.boolean(:description_changed, null: false)
114
108
  t.text(:locked_tags)
115
- t.boolean(:parent_changed, null: false, index: true)
109
+ t.boolean(:parent_changed, null: false)
116
110
  t.bigint(:parent_id)
117
- t.bigint(:post_id, null: false, index: true)
111
+ t.bigint(:post_id, null: false)
118
112
  t.string(:rating)
119
- t.boolean(:rating_changed, null: false, index: true)
113
+ t.boolean(:rating_changed, null: false)
120
114
  t.text(:reason)
121
115
  t.text(:removed_locked_tags, array: true, null: false, default: [])
122
116
  t.text(:removed_tags, array: true, null: false, default: [])
123
117
  t.text(:source)
124
- t.boolean(:source_changed, null: false, index: true)
118
+ t.boolean(:source_changed, null: false)
125
119
  t.text(:tags)
126
- t.datetime(:updated_at, null: false, index: true)
127
- t.bigint(:updater_id, index: true)
128
- t.integer(:version, null: false, index: true)
129
- t.index("description gin_trgm_ops", using: :gin)
130
- t.index("locked_tags gin_trgm_ops", using: :gin)
131
- t.index("reason gin_trgm_ops", using: :gin)
132
- t.index("source gin_trgm_ops", using: :gin)
133
- t.index("tags gin_trgm_ops", using: :gin)
120
+ t.datetime(:updated_at, null: false)
121
+ t.bigint(:updater_id)
122
+ t.integer(:version, null: false)
134
123
  end
135
124
 
136
125
  create_table(<%= table_ref("tag_aliases") %>, id: :bigint, default: nil, force: :cascade) do |t|
137
- t.string(:antecedent_name, null: false, index: true)
138
- t.string(:consequent_name, null: false, index: true)
126
+ t.string(:antecedent_name, null: false)
127
+ t.string(:consequent_name, null: false)
139
128
  t.datetime(:created_at)
140
- t.string(:status, null: false, index: true)
141
- t.index(%i[status antecedent_name])
142
- t.index("antecedent_name gin_trgm_ops", using: :gin)
143
- t.index("consequent_name gin_trgm_ops", using: :gin)
129
+ t.string(:status, null: false)
130
+ t.integer(:forum_post_id, null: false)
131
+ t.integer(:forum_topic_id, null: false)
132
+ t.string(:reason, null: false)
133
+ t.datetime(:updated_at)
134
+ t.integer(:approver_id)
135
+ t.integer(:post_count, null: false)
136
+ t.integer(:down_votes, null: false)
137
+ t.integer(:meh_votes, null: false)
138
+ t.integer(:up_votes, null: false)
144
139
  end
145
140
 
146
141
  create_table(<%= table_ref("tag_implications") %>, id: :bigint, default: nil, force: :cascade) do |t|
147
- t.string(:antecedent_name, null: false, index: true)
148
- t.string(:consequent_name, null: false, index: true)
142
+ t.string(:antecedent_name, null: false)
143
+ t.string(:consequent_name, null: false)
149
144
  t.datetime(:created_at)
150
- t.string(:status, null: false, index: true)
151
- t.index(%i[status consequent_name])
152
- t.index(%i[status antecedent_name])
153
- t.index("antecedent_name gin_trgm_ops", using: :gin)
154
- t.index("consequent_name gin_trgm_ops", using: :gin)
145
+ t.string(:status, null: false)
146
+ t.integer(:forum_post_id, null: false)
147
+ t.integer(:forum_topic_id, null: false)
148
+ t.string(:reason, null: false)
149
+ t.datetime(:updated_at)
150
+ t.integer(:approver_id)
151
+ t.string(:descendant_names, array: true)
152
+ t.integer(:down_votes, null: false)
153
+ t.integer(:meh_votes, null: false)
154
+ t.integer(:up_votes, null: false)
155
155
  end
156
156
 
157
157
  create_table(<%= table_ref("tags") %>, id: :bigint, default: nil, force: :cascade) do |t|
158
- t.string(:category, null: false, index: true)
159
- t.string(:name, null: false, index: { unique: true })
160
- t.integer(:post_count, null: false, index: { order: { post_count: :desc } })
161
- t.index(%i[category post_count], order: { post_count: :desc })
162
- t.index("name gin_trgm_ops", using: :gin)
158
+ t.string(:category, null: false)
159
+ t.string(:name, null: false)
160
+ t.integer(:post_count, null: false)
161
+ t.datetime(:created_at, null: false)
162
+ t.datetime(:updated_at, null: false)
163
+ t.boolean(:is_locked, null: false)
163
164
  end
164
165
 
165
166
  create_table(<%= table_ref("wiki_pages") %>, id: :bigint, default: nil, force: :cascade) do |t|
166
- t.text(:body, null: false, index: true)
167
+ t.text(:body, null: false)
167
168
  t.datetime(:created_at, null: false)
168
- t.bigint(:creator_id, null: false, index: true)
169
- t.boolean(:is_locked, null: false, index: true)
170
- t.string(:title, null: false, index: { unique: true })
169
+ t.bigint(:creator_id, null: false)
170
+ t.boolean(:is_locked, null: false)
171
+ t.string(:title, null: false)
171
172
  t.datetime(:updated_at, null: false)
172
- t.bigint(:updater_id, index: true)
173
- t.index("body gin_trgm_ops", using: :gin)
174
- t.index("title gin_trgm_ops", using: :gin)
173
+ t.bigint(:updater_id)
174
+ t.string(:parent)
175
175
  end
176
176
 
177
177
  create_table(<%= table_ref("row_counts") %>, primary_key: :table_name, id: :string, force: :cascade) do |t|
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require("date")
5
+
6
+ def categorize(subject)
7
+ case subject
8
+ when /\Aadd /i then "Added"
9
+ when /\Afix /i then "Fixed"
10
+ when /\Aoptimize /i, /\Arefactor /i, /\Aupdate /i then "Changed"
11
+ end
12
+ end
13
+
14
+ shas = `git log --follow --format="%H" -- lib/e621_export_downloader/version.rb`.strip.split("\n")
15
+
16
+ entries = shas.map do |sha|
17
+ subject = `git log -1 --format="%s" #{sha}`.strip
18
+ date_str = `git log -1 --format="%ai" #{sha}`.strip
19
+ body = `git log -1 --format="%b" #{sha}`.strip
20
+ version_file = `git show #{sha}:lib/e621_export_downloader/version.rb`
21
+ version = version_file.match(/VERSION = "([^"]+)"/)[1]
22
+ date = Date.parse(date_str).strftime("%Y-%m-%d")
23
+ section = categorize(subject)
24
+
25
+ { version: version, date: date, section: section, subject: subject, body: body }
26
+ end
27
+
28
+ changelog = +"# Changelog\n"
29
+
30
+ entries.each do |e|
31
+ changelog << "\n## [#{e[:version]}] - #{e[:date]}\n"
32
+
33
+ section = e[:section]
34
+ if section
35
+ changelog << "\n### #{section}\n"
36
+ changelog << "- #{e[:subject]}"
37
+
38
+ unless e[:body].empty?
39
+ refs = e[:body].scan(/(?:from|pending):\s*\S+/).join(", ")
40
+ changelog << " (#{refs})" unless refs.empty?
41
+ end
42
+
43
+ changelog << "\n"
44
+ else
45
+ changelog << "\n_#{e[:subject]}_\n"
46
+ end
47
+ end
48
+
49
+ File.write("CHANGELOG.md", changelog)
50
+ puts("Generated CHANGELOG.md")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: e621_export_downloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donovan_DMC
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-06-24 00:00:00.000000000 Z
10
+ date: 2026-06-29 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: csv
@@ -75,6 +75,7 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - ".irbrc"
77
77
  - ".ruby-version"
78
+ - CHANGELOG.md
78
79
  - LICENSE
79
80
  - README.md
80
81
  - Rakefile
@@ -118,6 +119,7 @@ files:
118
119
  - lib/generators/e621_export_downloader/install_generator.rb
119
120
  - lib/generators/e621_export_downloader/templates/initializers/e621_models.rb.erb
120
121
  - lib/generators/e621_export_downloader/templates/migrations/create_e621_tables.rb.erb
122
+ - scripts/generate_changelog.rb
121
123
  - sorbet/config
122
124
  - sorbet/rbi/annotations/.gitattributes
123
125
  - sorbet/rbi/annotations/faraday.rbi