ChangeLog 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177
  1. 2024-12-31 mio <stigma@disroot.org>
  2. 2024.12
  3. Change load order of plugins
  4. I think it makes more sense to check non-root directories first, since
  5. that would allow people to override the default 'gm' and 'imageio' if
  6. they want. It also means that you don't need to "install" a plugin, you
  7. can just copy it to the local data directory.
  8. 2024-12-30 mio <stigma@disroot.org>
  9. Fix building GDC 12
  10. pd.pixiv_downloader would fail to link when the 'pd' directory was
  11. compiled in to its own static library. Changed it so all the files
  12. in the 'pd' directory are compiled when compiling the main executable.
  13. 2024-12-29 mio <stigma@disroot.org>
  14. Generate version string from build script
  15. Mention reloading dylib cache
  16. Update macOS LDC notice
  17. Fix output.base_folder config
  18. Fix plugin loading on macOS
  19. Add --converter option to override config option
  20. 2024-12-27 mio <stigma@disroot.org>
  21. Update imageio_converter to use new API
  22. 2024-12-25 mio <stigma@disroot.org>
  23. Update plugin definition
  24. There is a new ConverterInfo structure which contains information about
  25. the current converter plugin. It also provides a function that will
  26. create the actual converter.
  27. Currently only the GraphicsMagick converter has been updated to use this
  28. new definition. An update to the ImageIO converter will follow shortly.
  29. 2024-12-15 mio <stigma@disroot.org>
  30. Explain GraphicsMagick "HACK"
  31. Check plugin initialization result
  32. Change plugin loading to not require _converter
  33. In effect, this means the converter.name configuration option now only
  34. requires "<name>", not "<name>_converter". Less duplication in the
  35. configuration.
  36. Reformat converter file
  37. 2024-12-12 mio <stigma@disroot.org>
  38. Fix delay/looping in imageio_converter
  39. Install converter.h header
  40. Add config option for converter.name
  41. The option expects a name in the form of "<plugin>_converter". So, for
  42. example, if you want to specifically use the "gm" converter, you'd use
  43. "gm_converter" for the name.
  44. 2024-12-11 mio <stigma@disroot.org>
  45. (meson) Install gm_converter to rpath
  46. Only for meson since scons doesn't set the RPATH currently.
  47. 2024-12-11 mio <stigma@disroot.org>
  48. Convert macOS ImageIO to a plugin
  49. I've opted to use the RPATH method to address the issue noted in #34
  50. however, macOS will also attempt to look in /usr/local/lib/ and
  51. ~/Library/Appliction Support/yumeneru-software.pixiv_down/plugins/
  52. should a plugin not be found in the rpath.
  53. There is also a fallback for $XDG_DATA_HOME/pixiv_down/plugins/ for
  54. non-macOS systems.
  55. This is currently untested on non-macOS systems.
  56. 2024-12-10 mio <stigma@disroot.org>
  57. Convert plugin system to use C linkage
  58. This should work better on macOS where linking dynamic libraries
  59. written in D doesn't seem to work.
  60. 2024-11-28 mio <stigma@disroot.org>
  61. Compile gm_converter in SCons
  62. 2024-11-28 mio <stigma@disroot.org>
  63. Replace GraphicsMagick binding with plugin system
  64. The plugin API may still change as the macOS version is supported, but
  65. after that it should be 'stable'. The "ConverterAPIVersion" will remain
  66. at '1' until that happens. Documentation will be added afterwards.
  67. There also needs to be some tests for other plugins, so I'll probably
  68. end up writing another converter to test that out.
  69. See: https://codeberg.org/supercell/pixiv_down/issues/34
  70. 2024-11-26 mio <stigma@disroot.org>
  71. Build fixes for DUB
  72. Should be the last of these fixes for the reorganization.
  73. Rewrite SCons to support reorganization
  74. 2024-11-19 mio <stigma@disroot.org>
  75. Move term.d to mlib
  76. Not yet part of the mlib repository, but it'll get there one day.
  77. Move source/{cmds/,}*.d to source/app
  78. Move configuration.d to pd/configuration.d
  79. Move pixiv-related code to separate pd/ directory
  80. Mainly just a bit of code organising.
  81. 2024-11-05 mio <stigma@disroot.org>
  82. Remove autotools build system
  83. Fix crash when downloading Ugoira
  84. pixiv now expects a 'i.pximg.net' host for Ugoira.
  85. 2024-10-27 mio <stigma@disroot.org>
  86. v2024.10
  87. Fix typo in update_git_version
  88. Mention macOS build limitation in INSTALL
  89. Support building on macOS/SCons/DMD
  90. 2024-10-26 mio <stigma@disroot.org>
  91. Add deprecation notice to configure.ac
  92. Update INSTALL instructions
  93. 2024-10-26 mio <stigma@disroot.org>
  94. Add scons build script
  95. Yes, another build script. While dub is the de facto build tool for D,
  96. it doesn't allow people to install programs or libraries. Meson works
  97. *fine*, but I'm not a huge fan of it. SCons seems nice?
  98. dub, meson, and scons will be supported.
  99. Honestly, if CMake provided support for D, I'd use that.
  100. 2024-10-26 mio <stigma@disroot.org>
  101. Update README
  102. 2024-10-26 mio <stigma@disroot.org>
  103. Add update_git_version.d to replace dub.sdl script
  104. On macOS, the '-i' option for sed (BSD) required an argument, however,
  105. GNU sed will not work if an argument is provided for the '-i' option.
  106. Yay!
  107. 2024-10-26 mio <stigma@disroot.org>
  108. Update mlib.directories to 0.5.1
  109. This add support for stateDir on macOS
  110. Fixes: https://codeberg.org/supercell/pixiv_down/issues/33
  111. 2024-10-15 mio <stigma@disroot.org>
  112. Add docs/meson.build
  113. daily: Prohibit BEGIN without END or END > BEGIN
  114. Update documentation for daily command
  115. 2024-10-15 mio <stigma@disroot.org>
  116. Add support for automatic daily end date.
  117. Dates are stored in $XDG_STATE_HOME/pixiv_down/last_daily_run on a
  118. single line using the format YYYY-MM-DD. No time is recorded, since
  119. the daily command will use midnight as the end time (00:00)
  120. Resolves: https://codeberg.org/supercell/pixiv_down/issues/32
  121. 2024-10-15 mio <stigma@disroot.org>
  122. Configure guix.scm to use meson build system
  123. 2024-10-13 mio <stigma@disroot.org>
  124. Update PHPSESSID link
  125. Fix version generation with dub (non-git)
  126. Update version strings
  127. Include meson files with autoconf dist
  128. Improve git version tagging across build systems
  129. Require --public or --private (following)
  130. This has been the requirement per the help messages, but wasn't enforced
  131. if another argument was provided, such as --skip.
  132. Improve message when fetching accounts (following)
  133. Use meson on the README
  134. 2024-10-13 mio <stigma@disroot.org>
  135. Add meson build files
  136. (not tested on macOS yet)
  137. This will probably take over the autoconf files that are currently
  138. present. Not that I have anything against autoconf, but meson supports
  139. D out of the box.
  140. There is still some more changes to the meson files that I need to work
  141. out (such as vcs_tag).
  142. The autoconf files will be removed after 2024.10 release.
  143. 2024-10-12 mio <stigma@disroot.org>
  144. Use OS 'state' directory for logs (XDG)
  145. See: https://codeberg.org/supercell/pixiv_down/issues/33
  146. 2024-09-25 mio <stigma@disroot.org>
  147. Add docs/Makefile.am
  148. 2024-09-24 mio <stigma@disroot.org>
  149. v2024.09
  150. Reformat the NEWS file
  151. 2024-09-24 mio <stigma@disroot.org>
  152. Add --force option to daily command
  153. Very useful for times when pixiv changes the AJAX API, breaking
  154. pixiv_down, and the author hasn't realized, so all the images you
  155. thought you were downloading for the last week or so, were actually HTML
  156. files.
  157. *cough*
  158. (running 'find /path/to/pixiv-pictures -size -200c' should help)
  159. 2024-09-24 mio <stigma@disroot.org>
  160. Add --force option to artwork command
  161. Fix downloading images (pixiv change)
  162. At some point, it seems that pixiv started reading the 'accepts' header
  163. a bit differently.
  164. Update mlib.directories to 0.5.0
  165. 2024-08-08 mio <stigma@disroot.org>
  166. Add bookmarked configuration docs
  167. Add configuration for bookmarked always_remove_invalid
  168. Also cleanup the configuration.d file a bit.
  169. 2024-08-07 mio <stigma@disroot.org>
  170. Fix crash when fetching CSRF token
  171. Fixes: https://codeberg.org/supercell/pixiv_down/issues/31
  172. 2024-08-04 mio <stigma@disroot.org>
  173. Add default DFLAGS -g -O2
  174. This bloats the binary, but makes it easier to debug anything crashes.
  175. You can just change this by settings DFLAGS when calling make. E.g:
  176. make DFLAGS='-O3 -frelease'
  177. 2024-08-01 mio <stigma@disroot.org>
  178. Fix autotools-based compilation for GDC12
  179. Bump UserAgent to Firefox 126
  180. Add bookmarked 'remove-from-file' option
  181. Potential fixes for CSRF Token fetching
  182. Instead of requesting the home page (www.pixiv.net), we now request
  183. the 'bookmarks' page of the authenticated account. I think there may
  184. have been some issues with certain IPs making the homepage request,
  185. since it seemed to encounter a Cloudflare verification more often then
  186. not. We also only send a request to fetch the CSRF token if the 'bookmarked'
  187. command is invoked, not for every command except for help.
  188. 2024-07-27 mio <stigma@disroot.org>
  189. Add GNU Guix package definition for development
  190. Remove fetch_dependencies script
  191. It hasn't done anything for a couple of months (0d9ac1895f).
  192. Support for D 2076.
  193. I've been playing around with Guix. Unfortunately, the latest supported
  194. version of GDC (as of writing) is 11, which only supports D 2.076.
  195. Convert Ruby 'configure' to Autotools
  196. I didn't really have anything against using Ruby, other than it meant
  197. depending on another language that may or may not be installed by
  198. default on different distributions.
  199. 2024-07-23 mio <stigma@disroot.org>
  200. Remove magickd from dub.selections.json
  201. Remove man pages when running make uninstall
  202. 2024-07-21 mio <stigma@disroot.org>
  203. v2024.07
  204. Simplify the fetch_dependencies script
  205. Improve message no content to download (`artist`)
  206. Fix artist novel offset not working
  207. 2024-07-02 mio <stigma@disroot.org>
  208. Update CHANGELOG
  209. Fix GIF generation on POSIX
  210. Previously GIFs would play the 'second frame' first and the
  211. 'first frame' second because GraphicsMagick will prepend an
  212. image to the list if there is no previous image in the list.
  213. 2024-06-03 mio <stigma@disroot.org>
  214. Fix endless loop in daily command (pt. 2)
  215. This was an error from 8036e5e9f6ef931f4ec75f6834731651f3f26f63.
  216. Fixes: https://codeberg.org/supercell/pixiv_down/issues/30
  217. 2024-06-02 mio <stigma@disroot.org>
  218. Fix endless loop in daily command
  219. Fixes: https://codeberg.org/supercell/pixiv_down/issues/30
  220. 2024-05-31 mio <stigma@disroot.org>
  221. v2024.05
  222. Update CHANGELOG
  223. Accept --output-directory= and --config-file=
  224. 2024-05-26 mio <stigma@disroot.org>
  225. Remove magickd from README
  226. Update fetch_dependencies.sh
  227. It is likely this script will be removed in a future version.
  228. 2024-05-26 mio <stigma@disroot.org>
  229. Remove dependency on magickd
  230. GraphicsMagick is still used for POSIX builds, however, it is now loaded
  231. via dlopen. There are a couple for this change. Firstly, it simplifies
  232. building when "dub" isn't present. Secondly, it *should* allow us to
  233. support ImageMagick as well.
  234. See: https://codeberg.org/supercell/pixiv_down/issues/29
  235. 2024-05-24 mio <stigma@disroot.org>
  236. Fix invalid array index for help
  237. 2024-05-23 mio <stigma@disroot.org>
  238. Fix building errors (incorrect parameters)
  239. 2024-05-22 mio <stigma@disroot.org>
  240. Add support for CLI configuration overrides
  241. Just need to add the --OPTION=ARG variants.
  242. See: https://codeberg.org/supercell/pixiv_down/issues/26
  243. 2024-05-19 mio <stigma@disroot.org>
  244. Miscellaneous changes (tidy up)
  245. 2024-05-19 mio <stigma@disroot.org>
  246. Improve fallback for building in non-VCS env.
  247. This prevents Make from rebuilding when nothing changed. Only remaining
  248. issue is that magickd isn't present by default.
  249. See: https://codeberg.org/supercell/pixiv_down/issues/28
  250. 2024-05-19 mio <stigma@disroot.org>
  251. Provide a fallback for building in non-VCS env.
  252. 2024-05-18 mio <stigma@disroot.org>
  253. Update CHANGELOG
  254. Allow 'compact' when invalid ID and in interactive
  255. Fix crash in compact command when ID isn't valid.
  256. 2024-05-16 mio <stigma@disroot.org>
  257. Fix crash when downloading an artist
  258. 2024-04-22 mio <stigma@disroot.org>
  259. Send `lang` in pixiv requests
  260. This will localize error messages from the pixiv API, which would
  261. be helpful, if the error messages weren't just "Unknown error occurred".
  262. Fix log formatting in cmds.daily
  263. Get the current locale for error messages
  264. Fix configure script for Ruby 3+
  265. 2024-04-20 mio <stigma@disroot.org>
  266. v2024.04
  267. Fix logging formatting
  268. Remove Ugoira temp files & enable cursor on error
  269. Copyright update
  270. Remove empty EXAMPLES from pixiv_down.1
  271. Remove `nt` module
  272. I created these functions because I'm not a fan of how the phobos
  273. implementations throw exceptions... if these should error than I
  274. don't think the program needs to abort. I'm removing these just to
  275. reduce the number of files to compile and remove duplicate functionality
  276. (since these functions exist in the standard library).
  277. Update README
  278. 2024-04-18 mio <stigma@disroot.org>
  279. Add notice about building with gamut to dub.sdl
  280. Warn when an Ugoira is enountered with gamut
  281. 2024-04-16 mio <stigma@disroot.org>
  282. Fix some incorrectly formatted logging calls
  283. Add initial support for building with gamut
  284. See: https://codeberg.org/supercell/pixiv_down/issues/25
  285. 2024-04-13 mio <stigma@disroot.org>
  286. Don't fetch CSRF Token for help command
  287. Add custom FileLogger
  288. Continuing on from 79726c5a75df9ad3035bd7c55bb24059a8bc8036
  289. Update CHANGELOG.md
  290. 2024-04-13 mio <stigma@disroot.org>
  291. Remove -fpreview=in from GDC build
  292. This has been causing segfaults. While GraphicsMagick is the one that
  293. reports the segfault...
  294. Magick: abort due to signal 11 (SIGSEGV) "Segmentation Fault"...
  295. ...running pixiv_down through GDB seems to reveal an issue with
  296. std.regex. This doesn't happen with DMD or LDC, so the flag remains in
  297. use for those compilers.
  298. 2024-04-07 mio <stigma@disroot.org>
  299. update .editorconfig
  300. Replace logger.d with std.experimental.logger
  301. It was causing some issues with GraphicsMagick, causing the occasionaly
  302. segfault. Probably wasn't written properly. I'll add a custom format
  303. at some point, since the default isn't really nice to look at.
  304. 2024-04-05 mio <stigma@disroot.org>
  305. Add 'bookmarked' command to README
  306. Remove util$converToString
  307. Compile with -preview=in
  308. Move terminal-related functions to term.d
  309. Closes: https://codeberg.org/supercell/pixiv_down/issues/22
  310. 2024-04-04 mio <stigma@disroot.org>
  311. Add pixiv_down-bookmarked.1
  312. Support for removing invalid novel bookmarks
  313. See: https://codeberg.org/supercell/pixiv_down/issues/15
  314. 2024-04-04 mio <stigma@disroot.org>
  315. Implement 'bookmarked --remove-invalid' option
  316. To send a POST request on pixiv, you need a CSRF token which, rather
  317. conveniently, pixiv provides as part of the initial HTML response for
  318. (seemingly) and web page. It then removes it after loading, so secrets
  319. can stay hidden.
  320. There is some more information that can be found in the linked ticket.
  321. See: https://codeberg.org/supercell/pixiv_down/issues/15
  322. 2024-04-03 mio <stigma@disroot.org>
  323. Improve 'bookmarked' command
  324. A new --skip option was added since it is probably unreasonable to
  325. assume people are happy to sit for however long to download 1600+ works.
  326. To assist with this, the number of *processed* works are printed after
  327. every page, this number includes and works which are no longer available
  328. to download so the --skip option works as expected.
  329. There was also a crash that would occur when an artwork was "masked".
  330. It turns out the API returns an integer artwork ID if the work is masked
  331. instead of a string, so we perform a check for that as well.
  332. 2024-04-03 mio <stigma@disroot.org>
  333. Update .gitignore
  334. Move pixiv_down version info to separate module
  335. 2024-04-02 mio <stigma@disroot.org>
  336. Begin implementing 'bookmarked' command
  337. See: https://codeberg.org/supercell/pixiv_down/issues/15
  338. Add list with supported content types to man pages
  339. Add pixiv_down-novel.1
  340. Add pixiv_down-following.1
  341. Write pixiv_down-daily.1
  342. Update CHANGELOG.md
  343. 2024-04-02 mio <stigma@disroot.org>
  344. Use std.getopt rather than custom argument parsing
  345. The only place it hasn't been used is in app.d, since std.getopt doesn't
  346. support "commands", so there would be no benefit.
  347. See: https://codeberg.org/supercell/pixiv_down/issues/24
  348. 2024-04-02 mio <stigma@disroot.org>
  349. Remove deprecation message for config base_folder
  350. As with the change in configuration file name, this setting will
  351. now be supported indefinitely.
  352. See: 90e48e436d8990d0f5d9d6c7d6158799f5e94b3f
  353. 2024-04-02 mio <stigma@disroot.org>
  354. update mlib/directories to 0.4.0
  355. 2024-04-01 mio <stigma@disroot.org>
  356. Change the access and modification times of GIFs
  357. Support PIXIV_DOWN_SESSID environment variable
  358. Closes: https://codeberg.org/supercell/pixiv_down/issues/23
  359. 2024-03-31 mio <stigma@disroot.org>
  360. Use real account IDs in pixiv_down-artist.1
  361. They stand out a bit more than 1 2 3
  362. Add installation of manual pages to Makefile.in
  363. Fix reference in pixiv_down.1
  364. Add manual page for 'pixiv_down prune'
  365. 2024-03-31 mio <stigma@disroot.org>
  366. Change default configuration file name
  367. Now called 'pixiv_down.conf'. Reason? PIXIV_DOWN.CONF(5) fits better
  368. than PIXIV_DOWN-SETTINGS.CONF(5).
  369. The old name will be supported indefinitely.
  370. 2024-03-31 mio <stigma@disroot.org>
  371. Begin writing manual pages
  372. 2024-03-30 mio <stigma@disroot.org>
  373. Fix GIFs not being recreated after SIGINT [GM]
  374. When calling WriteImages, GraphicsMagick will write each frame of the
  375. GIF directly to the provided output filename. In our case that was the
  376. final '.gif', which meant that with the changes introduced in commit
  377. f09e5e180703b67861954b587775ec579f78d749 pixiv_down wouldn't attempt to
  378. recreate the GIF if it had previously been interrupted with ^C, for
  379. example.
  380. Because "fTemporayPath" ends with '.part', which isn't an image type,
  381. GraphicsMagick assumes the output image is the same format as the input.
  382. To prevent this, we specifically set the first frame's "magick".
  383. Fixes: https://codeberg.org/supercell/pixiv_down/issues/21
  384. 2024-03-30 mio <stigma@disroot.org>
  385. Fix incorrect progress reporting for Ugoira
  386. See: https://codeberg.org/supercell/pixiv_down/issues/20
  387. Makefile.in improvements
  388. pixiv_down will only rebuild if there have been new commits since the
  389. last build.
  390. Check if Ugoira exists before downloading ZIP
  391. Fixes: https://codeberg.org/supercell/pixiv_down/issues/18
  392. 2024-03-29 mio <stigma@disroot.org>
  393. Update README with new build instructions
  394. Mention the new configure script and clarify that macOS does not need
  395. GraphicsMagick.
  396. configure script fixes for macOS
  397. Generate githash with Makefile.in
  398. Replace Makefile with configure script
  399. The end goal is to allow macOS to build using ./configure && make
  400. without having to change anything. (This currently works on linux)
  401. 2024-03-10 mio <stigma@disroot.org>
  402. Fix macOS compilation
  403. Update README
  404. Update CHANGELOG
  405. Add GIFWriter and ImageReader for GraphicsMagick
  406. ugoira support for macOS
  407. While it may have been possible to create ugoira using GraphicsMagick,
  408. this makes use of CoreFoundation and ImageIO provided by macOS.
  409. Add configuration for macOS
  410. Improve POSIX support for nt.file.setTimes
  411. Update mlib/directories to 0.3.0
  412. Update mlib/trash.d to 0.4.0
  413. 2024-03-07 mio <stigma@disroot.org>
  414. Log Ugoira mimetype in debug
  415. 2024-02-03 mio <stigma@disroot.org>
  416. v2024.02
  417. 2024-01-27 mio <stigma@disroot.org>
  418. Don't use page number in filename if single page
  419. Illustrations with multiple pages and Manga will continue to use the
  420. page number and be located in a sub-directory. For illustrations with
  421. a single page, his just re-creates the behaviour before
  422. 91005492bb34ba497de6e73e1aa5368a2b573083
  423. 2024-01-26 mio <stigma@disroot.org>
  424. Update 'help' help with novel support
  425. Fixes for -preview=in
  426. I'm not going to force compilation with -preview=in yet. But this is in
  427. preparation for when I do, or when (if ever) it becomes the default.
  428. Allow DFLAGS if used in Makefile
  429. Add PHPSESSID HowTo
  430. Closes: https://codeberg.org/supercell/pixiv_down/issues/14
  431. Add --sfw-only option to daily command
  432. Closes: https://codeberg.org/supercell/pixiv_down/issues/12
  433. Update CHANGELOG
  434. Support for downloading an artist's novels
  435. Closes: https://codeberg.org/supercell/pixiv_down/issues/8
  436. Provide some documentation to nt.prelude.Optional
  437. Implement downloading daily novels
  438. See: https://codeberg.org/supercell/pixiv_down/issues/8
  439. 2024-01-25 mio <stigma@disroot.org>
  440. Add ability to download novels
  441. Currently only works via the new 'novel' command, but fetching all
  442. novels from an account, and fetching the latest novels from all followed
  443. accounts will be implemented soon.
  444. See: https://codeberg.org/supercell/pixiv_down/issues/8
  445. 2024-01-25 mio <stigma@disroot.org>
  446. Build individual object files
  447. Implement --skip-manga and --skip-illust
  448. Closes: https://codeberg.org/supercell/pixiv_down/issues/7
  449. Create a spinner when downloading/creating Ugoira
  450. Move runSpinner from prune.d to util.d
  451. 2024-01-23 mio <stigma@disroot.org>
  452. Remove dependency on pixivd
  453. Small tidy up
  454. Move following command to separate file
  455. Add nothrow variant of std.conv
  456. Add pixiv.fetchUser
  457. Replaces pixivd.client.Client.fetchUserAll. With this, the only
  458. remaining method to port is fetchFollowing.
  459. Add private makeRequest
  460. Add pixiv.fetchUserProfile
  461. Replaces pixivd.client.Client.fetchUserAll
  462. Move daily command in to separate file
  463. 2024-01-23 mio <stigma@disroot.org>
  464. Rewrite daily command to use pixiv module
  465. I have also removed the 'restrict' option, which would allow people to
  466. specify whether to download content that is either R18, Safe, or Both.
  467. The option never actually did anything, with the daily command always
  468. downloading Both content types. The option may come back.
  469. See: https://codeberg.org/supercell/pixiv_down/issues/12
  470. Closes: https://codeberg.org/supercell/pixiv_down/issues/13
  471. 2024-01-23 mio <stigma@disroot.org>
  472. Use Flag rather than bool in term.d
  473. 2024-01-21 mio <stigma@disroot.org>
  474. Build object files for graphicsmagick_c
  475. This won't really speed up build times yet, but once pixivd is removed the
  476. files in source/ can be compiled to object files and hopefully that will
  477. speed up build times a little.
  478. 2024-01-21 mio <stigma@disroot.org>
  479. Add support for downloading Ugoira in pixiv
  480. This took a while to implement because I had recently updated
  481. GraphicsMagick versions and the previous code was incorrect for creating
  482. GIFs. It took some time to figure it out (completely missing the entry
  483. in the NEWS file...) All that needed to change was adding the
  484. GetFirstImageInList call.
  485. Closes: https://codeberg.org/supercell/pixiv_down/issues/10
  486. 2024-01-21 mio <stigma@disroot.org>
  487. Fix incorrect format
  488. Fix dynamic build linkage
  489. 2024-01-20 mio <stigma@disroot.org>
  490. Separate pixiv API requests and downloading
  491. 2024-01-20 mio <stigma@disroot.org>
  492. Remove ProgressMonitor and downloadIllust
  493. The functionality is provided by downloadArtworkWith and
  494. downloadArtworkWithPageNotifier.
  495. Work still needs to be done on supporting Ugoira and novels.
  496. 2024-01-20 mio <stigma@disroot.org>
  497. Improve progress reporting for some commands
  498. Improved for the artist, artwork, and daily commands.
  499. 2024-01-20 mio <stigma@disroot.org>
  500. Implement downloading for pixiv.downloadArtwork
  501. All that is missing is support for ugoira and novels.
  502. See: https://codeberg.org/supercell/pixiv_down/issues/11
  503. 2024-01-18 mio <stigma@disroot.org>
  504. Add prune command to CHANGELOG
  505. Remove ability to build with local archives
  506. Use either make (git submodule update --init && make) or dub.
  507. 2024-01-18 mio <stigma@disroot.org>
  508. Begin implementation of pixiv.downloadArtwork
  509. The intention is to replace pixiv.downloadIllust with this new function.
  510. Currently it's not complete (doesn't even download!) but there shouldn't
  511. be too much more work.
  512. Then the pixiv module needs a method of supporting Ugoira.
  513. 2024-01-18 mio <stigma@disroot.org>
  514. Remove excessive private modifier
  515. Move artist command to separate file
  516. Replace phobos setTimes with nothrow version
  517. This was the start of an attempt to make pixiv.setDate nothrow, however,
  518. considering that Systime.fromISOExtString and dirEntries can both throw,
  519. I'm not sure that will happen :(
  520. Move artwork command to separate file
  521. Log execution date
  522. 2024-01-16 mio <stigma@disroot.org>
  523. Create data directory if needed in resetSessionID
  524. check for GraphicsMagick before building
  525. 2024-01-14 mio <stigma@disroot.org>
  526. Move downloadIllust function to new pixiv module
  527. The new pixiv module will be where all pixiv-related functionality will
  528. be located.
  529. Move convertToString to util.d
  530. Also mark it as nothrow
  531. 2024-01-13 mio <stigma@disroot.org>
  532. Add prune documentation to README
  533. Update mlib.configparser to 0.5.2
  534. Move configparser module to mlib
  535. Move directories module to mlib package
  536. 2024-01-13 mio <stigma@disroot.org>
  537. Fully replace std logger with custom logger
  538. Rewrite the logger module to use C functions since the D stdio seemed to
  539. be locking incorrectly when calling too many write functions in quick
  540. succession (messages weren't being written after the first few).
  541. This also adds an environment variable PIXIV_DOWN_LOG_LEVEL which (at
  542. startup) sets gMinLogLevel if the value is valid.
  543. 2024-01-13 mio <stigma@disroot.org>
  544. Add prune command
  545. This replaces the pixivd_tools' remove_unfollowed program.
  546. 2024-01-11 mio <stigma@disroot.org>
  547. Remove pixiv_down.png
  548. A remanent from when I was going to provide an AppImage for
  549. pixiv_down.
  550. 2024-01-05 mio <stigma@disroot.org>
  551. Add source/mlib/search_params
  552. 2024-01-04 mio <stigma@disroot.org>
  553. Remove hard coding linux terminal
  554. A leftover from having the incorrect escape codes.
  555. 2024 pt.1
  556. Update README
  557. Fix erroneous exit in GMagick_Dynamic builds
  558. main.loadLibGM was returning the value of
  559. graphicsmagick_c.config.loadGraphicsMagick
  560. which returns false when the library was
  561. correctly loaded, but some symbols could
  562. not be found. pixiv_down should be able
  563. to run under these conditions still.
  564. generate githash with dub
  565. make clean
  566. Fix colour output for tmux
  567. Replace GNUmakefile with Makefile
  568. Has been tested with both GNU Make and NetBSD Make (bmake).
  569. Deprecate fetch_dependencies script
  570. I won't remove the script, but I also won't be testing it.
  571. Either use git submodules or dub.
  572. Add ability to build using git submodules & make
  573. 2023-12-10 mio <stigma@disroot.org>
  574. Use custom logging for 'compact' command
  575. update pixivd
  576. 2023-12-09 mio <stigma@disroot.org>
  577. Update CHANGELOG for 'compact' command
  578. Implement 'compact' command
  579. Replaces the pixivd_tools/pixiv_combine_users found at
  580. https://osdn.net/users/nemophila/pf/pixivd_tools/wiki/FrontPage
  581. 2023-11-28 mio <stigma@disroot.org>
  582. Fix unittest compilation
  583. Reformat and update CHANGELOG
  584. Log compilation information to LogFile
  585. Make loadConfig public
  586. have makeSafe treat more characters as invalid
  587. Turns out this is really dependent on the filesystem's format
  588. (e.g. ext4, exfat, ntfs, etc.). This will assume unicode is valid, but
  589. will restrict the possible characters to 'work characters', periods, and
  590. hyphens.
  591. 2023-10-29 mio <stigma@disroot.org>
  592. Move configuration to separate module
  593. Slowly going around and breaking down the main file.
  594. Add .editorconfig
  595. Replace global 'log' with stdThreadLocalLog
  596. 2023-10-26 mio <stigma@disroot.org>
  597. Improve display of skipping followed artists
  598. Change the behaviour so that using --skip <num> won't print:
  599. 'Downloading artist 1 of <total>'
  600. but instead print:
  601. 'Downloading artist <num + 1> of <total>'.
  602. Generate entire 'git_version' file.
  603. Implement command to reset PHPSESSID
  604. 2023-10-25 mio <stigma@disroot.org>
  605. Log data directory
  606. Helps locate the file when an update of PHPSESSID is required.
  607. Need to add an option for changing this...
  608. 2023-10-25 mio <stigma@disroot.org>
  609. Replace OSDN repository links
  610. The servers haven't been reliable for a few months.
  611. 2023-09-30 mio <stigma@disroot.org>
  612. Cleanup project imports
  613. 2023-09-29 mio <stigma@disroot.org>
  614. Fix trailing percentage for previously downloaded
  615. e.g.:
  616. Previously downloaded page 1/2.%).
  617. Previously downloaded page 2/2.
  618. 2023-09-29 mio <stigma@disroot.org>
  619. Further improvements to the progress bar
  620. Still can't say I'm completely happy with this (trailing newlines and
  621. single-paged illustrations not changing the final message to 'Finished')
  622. but it's an improvement.
  623. I did spend a while trying to get a graphic progress bar, but couldn't
  624. integrate the UI in a way that I liked (the current implementation looks
  625. better IMO).
  626. See: https://codeberg.org/supercell/pixiv_down/issues/2
  627. 2023-09-27 mio <stigma@disroot.org>
  628. Use same indentation for options in help messages
  629. Pad 'Already downloaded page X' values
  630. Also considering changing the message to 'Already downloaded page x/y'
  631. 2023-08-16 mio <stigma@disroot.org>
  632. fix resuming a previous download of a manga.
  633. previously, if you cancelled a manga download partway, attempting to
  634. resume the download would result in the "Already downloaded" message,
  635. this was fixed with a commit[1] in pixivd, so we're just updating the
  636. version here.
  637. [1]: 1085361d86366542741e8ae5b845fed74c0a8aa5
  638. 2023-08-13 mio <stigma@disroot.org>
  639. Add initial version of a progress bar
  640. Not the final design, but at least it shows which page we're downloading
  641. and how far through we are.
  642. See: https://codeberg.org/supercell/pixiv_down/issues/2
  643. 2023-08-07 mio <stigma@disroot.org>
  644. Update pixivd
  645. This fixes an issue with GIF (Ugoira) not having a valid filename when
  646. calling the GraphicsMagick WriteImages function.
  647. Fixes https://codeberg.org/supercell/pixiv_down/issues/9
  648. 2023-08-07 mio <stigma@disroot.org>
  649. Change version identifier to date+hash
  650. 2023-07-23 mio <stigma@disroot.org>
  651. Update MagickD and PixivD versions
  652. 2023-07-16 mio <stigma@disroot.org>
  653. Update CHANGELOG.md
  654. - Reorganize some sections.
  655. - Downloads both manga and illustrations by default
  656. - Temporary(?) removal of `--limit` option for following command.
  657. Fix falling back to user picture directory
  658. Fix loading config when dir exists but not file
  659. 2023-06-24 mio <stigma@disroot.org>
  660. Add CHANGELOG.md
  661. Re write the 'following' command.
  662. I removed the --limit option since it's use is rather... limited. It'd
  663. be better served as an actual limit on the number of accounts to
  664. download, rather than the number of accounts per-page.
  665. Replace custom logger with Phobos FileLogger
  666. Rewrite 'following' help.
  667. 2023-06-23 mio <stigma@disroot.org>
  668. Create a new log file each run
  669. 2023-06-22 mio <stigma@disroot.org>
  670. Improve 'artwork' command
  671. The main change is the --group-errors option which will only print the
  672. errors just before the command has finished executing, rather than
  673. immediately after the error occurrs.
  674. This means you don't have to go searching for any errors after
  675. downloading the artworks.
  676. 2023-06-22 mio <stigma@disroot.org>
  677. Re-work 'artist' command
  678. This really addressed two issues regarding the artist command. Some of
  679. the messaging could use improvement, but I haven't quite figured out how
  680. I want this to work with the progressbars that will be implemented.
  681. See Also:
  682. Change default behaviour of 'artist' command
  683. https://codeberg.org/supercell/pixiv_down/issues/4
  684. Allow downloading of multiple artists when using the artist cmd
  685. https://codeberg.org/supercell/pixiv_down/issues/5
  686. 2023-06-20 mio <stigma@disroot.org>
  687. Clarify README notice
  688. Improve the 'daily' help
  689. I also took the liberty to re-format the dailyHandle function and
  690. improve some of the messaging there as well.
  691. 2023-06-17 mio <stigma@disroot.org>
  692. Update pixiv_down to use new directories API
  693. Update directories module to v0.2.0
  694. There are quite a few changes to the API which I'll need to address, but
  695. the big addition is support for Windows -- making us a step closer to
  696. supporting Windows in pixiv_down.
  697. Move config reading out of main
  698. Move loading of GraphicsMagick out of main
  699. Improve help message for artist command
  700. Remove `printMainHelp`
  701. 2023-06-16 mio <stigma@disroot.org>
  702. Reformat main function
  703. Improve 'unknown command' message
  704. 2023-06-15 mio <stigma@disroot.org>
  705. Replace ': ' with 'v' for version info
  706. Futher improve default help message
  707. Provide better default help message
  708. This will be displayed when there are no arguments provided or
  709. when -h/--help/help is provided.
  710. 2023-06-14 mio <stigma@disroot.org>
  711. Better handle invalid dates for --daily
  712. 2023-04-25 mio <stigma@disroot.org>
  713. Change 'daily' behaviour when begin and end equal
  714. 2023-01-28 mio <stigma@disroot.org>
  715. Initial commit