changelog.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. =====================
  2. JokeAPI Changelog
  3. - Version 2.3.2 -
  4. =====================
  5. [Planned for future releases]
  6. - Allow definition of max requests per minute per each client (issue #37)
  7. - Add positive flags and a "?whitelistFlags" param (issue #127)
  8. - Add Unit Tests (issue #121)
  9. - Serve docs with nginx to speed up page load times (issue #118)
  10. [2.3.3]
  11. - Value-less URL parameters now also support the value `true` (issue #537)
  12. - Re-flagged and reworded some jokes
  13. - Updated advanced C# code example
  14. - Did some maintenance work that was way overdue
  15. [2.3.2] - Joke update
  16. - Added new jokes
  17. - Rewrote the submission script to make it much more streamlined (issue #340)
  18. - Rewrote the add-joke script so it's easier for me to use
  19. - Added a new info script to make working with JokeAPI easier for me
  20. - Added a global CLI interface (issue #344)
  21. - API now adjusts environment-dependent settings automatically (issue #343)
  22. [2.3.1] - The Safe Mode Hotfix, because bugs exist for some reason (PR #214)
  23. - Fixed bug "API Error 500 - Cannot read property 'msBeforeNext' of null" (issue #212)
  24. - Fixed bug where API responded with Error 106 when using format=txt on endpoint /joke (issue #218)
  25. - Re-flagged joke 79 (issue #220)
  26. - API now automatically adds modification date <meta> tag to the docs (issue #223)
  27. - /info endpoint now gives the number of safe jokes per language (issue #224)
  28. - Added dependent jonathanbossenger/devdadjokes (issue #225)
  29. - Added translations to joke submission parser
  30. - Made static content not indexable by web crawlers
  31. [2.3.0] - The Safe Mode Update
  32. - JokeAPI now has its own domain - https://jokeapi.dev/
  33. - Version 2 of the API should be called @ https://v2.jokeapi.dev/ but can also be called with the old domain and https://jokeapi.dev/
  34. - The stage version is @ https://stage.jokeapi.dev/
  35. - Version 3 will be available @ https://v3.jokeapi.dev/
  36. - Implemented safe mode (issue #196)
  37. - Added contributors to the documentation
  38. - Added the blacklist flag "explicit" to filter out jokes containing explicit language
  39. - Improved the documentation a little bit again
  40. - Small sub-headers can now be linked to, too
  41. - Added some unit tests to make JokeAPI more reliable
  42. - Endpoint "/info"
  43. - Endpoint "/langcode/{LANGUAGE}"
  44. - Parameter "safe-mode" on Endpoint "/joke/{CATEGORY}"
  45. - Added a URL parameter to dry-run the /submit endpoint (issue #187)
  46. - API now tells clients how many requests they have left by providing some headers (issue #188)
  47. - Added changelog generation in Markdown format (thanks to Sahithyan Kandathasan / issue #191)
  48. - Changelog link in docs now redirects to the markdown file on GitHub (issue #192)
  49. - Added a few category aliases
  50. - Miscellaneous for Misc
  51. - Coding for Programming
  52. - Development for Programming
  53. - Halloween for Spooky
  54. - Renamed category "Miscellaneous" to "Misc" but kept old name "Miscellaneous" as an alias
  55. - Added two new wrapper libraries
  56. - sv443-joke-api for Node.js / TS (issue #190)
  57. - jokeapi-go for Golang (issue #193)
  58. - Updated C# code example in the docs (issue #207)
  59. - Increased Rate Limiting budgets (issue #208)
  60. - When using GET: from 60 to 120
  61. - When using POST: from 3 to 5
  62. [2.2.2] - The Seasonal Update
  63. - Added some new seasonal categories (issue #180)
  64. - Spooky (Halloween)
  65. - Christmas (thanks for the suggestion Dan)
  66. - Added dependent ToastIT-dev/PoshBot.Joker (issue #173)
  67. - Added a bunch of joke submissions
  68. - Reliability improvements in the documentation (issue #181)
  69. - Added POST as a method to submit data to the API since it makes more sense than PUT (maybe deprecating that some time)
  70. [2.2.1] - Version 2.2 Hotfix
  71. - Added the Czech translation (PR #137) - provided by @ThatCopy (https://github.com/ThatCopy) - thanks :)
  72. - Added a missing conversion mapping when using format `txt` and the `amount` parameter on endpoint `/joke` (issue #138)
  73. - Fixed wrong URLs in the documentation's JavaScript
  74. - Fixed crash when a client asks for a translation that doesn't exist
  75. - Slightly improved the documentation
  76. - Applied a few security patches
  77. [2.2.0] - The Pun Update
  78. - Added joke category "Pun" (issue #105)
  79. - Added "?amount" parameter to joke endpoint so multiple jokes can be fetched at once (issue #126)
  80. - Added support for jokes and error messages of different languages (issue #75)
  81. - /langcode/{LANGUAGE} endpoint
  82. - /languages endpoint
  83. - "?lang=code" URL parameter
  84. - Fixed ID caching (again, sigh) (issue #80)
  85. - Added pm2 custom metrics (issue #91)
  86. - Fixed HTTP 403 errors (issue #96)
  87. - Remade the URL parser using a package (issue #97)
  88. - Daemonized the API token refreshing (issue #102)
  89. - Rate limiting joke submissions more harshly now (issue #104)
  90. - Fixed error where the end of the payload were cut off, thus invalidating JSON (issue #119)
  91. - Joke submission property order is now enforced, improving uniformity (issue #120)
  92. - Joke submissions are now validated to make sure they don't contain fancy Unicode chars (issue #123)
  93. [2.1.5] - 2020 Q3 general patch #2
  94. - Ditched my botched rate limiting package for a "commercial" one (issue #113)
  95. - Added API token section to documentation (issue #114)
  96. - Client now receives a "Token-Valid" header with the value 0 or 1 depending on token validity (issue #115)
  97. - Renamed "X-Auth-Token" header to "Authorization" so requests don't get blocked by Cloudflare (issue #117)
  98. - Cleaned up a lot of code
  99. [2.1.4] - 2020 Q3 general patch #1
  100. - Fixed the IP getter module for like the 500th time now
  101. [2.1.3] - 2020 Q2 general patch #1
  102. - Added option to disable all console output but error messages (issue #72)
  103. - The content of jokes in the joke submission form is now correctly escaped and can no longer mess up the page (issue #68)
  104. - Fixed crash when parsing a malformatted URI (issue #69 (nice))
  105. - Re-flagged some jokes
  106. - Updated dependencies
  107. [2.1.2] - Plain Text update
  108. - Added file format "txt" to receive data as plain text
  109. - Fixed the joke submission URL in the /info endpoint data
  110. - Added HTTP error codes:
  111. - 413 Payload Too Large
  112. - 414 URI Too Long
  113. [2.1.1] - Auth update hotfix
  114. - Fixed incorrect error cause when using an out-of-range ID range parameter (see issue #54)
  115. - Added submission form (https://v2.jokeapi.dev/#submit)
  116. [2.1.0] - The auth update
  117. - Added an authorization header to make whitelisting possible without needing to have a static IP
  118. - Added the script "npm run add-token [amount]" to add one or more tokens
  119. - Improved the documentation (see issue #52)
  120. - Fixed a few bugs in the documentation
  121. [2.0.1] - A few hotfixes for the big 2.0.0 updates and some very very minor features I wanted to add
  122. - Hotfixed a few bugs from the big 2.0.0 update
  123. - Fixed joke ID caching (to not serve the same jokes multiple times)
  124. - Added three new commands that are run through CI and before contributing
  125. - Enabled automated code fixing with ESLint
  126. [2.0.0] - The complete rewrite - JokeAPI was completely rewritten and should now run like 100x better and be more easy to develop and maintain
  127. - Massively improved the "Try it out" section in the docs
  128. - Reformatted the jokes to always contain all flags
  129. - Added support for selecting multiple categories at once (for example: "https://v2.jokeapi.dev/joke/Dark,Miscellaneous/")
  130. - Massive performance improvements:
  131. - The documentation page and some static content are now able to be served with gzip, deflate and brotli encoding, decreasing the required bandwidth and speeding up page loading time
  132. - Reformatted the jokes to have the IDs beforehand, furthermore increasing performance and making it easier to know which joke ID belongs to which joke
  133. - Now the documentation page runs on a daemon, meaning it will only be recompiled if a file has changed, massively improving JokeAPIs perfomance
  134. - Static content like the stylesheet, client-side JS and images will now be loaded separately, through the "static" endpoint, decreasing page load time by an order of magnitude
  135. - Added a few new URL parameters:
  136. - Added the "?type" URL parameter to specify the type of the served joke ("single" or "twopart")
  137. - Added the "?contains" URL parameter to only serve jokes that match the provided search query
  138. - Added the "?idRange" URL parameter to get jokes from a single ID or an ID range (example: "https://v2.jokeapi.dev/joke/Any?id=50-75" or "...?id=15")
  139. - Added the "racist" and "sexist" flags for better filtering of offensive jokes
  140. - IP addresses are now hashed, protecting JokeAPI's users better and making it GDPR/DSGVO compliant
  141. - Added multiple scripts that should be run before contributing to the project / that are run through GitHub's Continuous Integration:
  142. - "npm run reformat" to reformat jokes from the old pre-2.0.0 syntax to the new 2.0.0 syntax
  143. - "npm run reassign-ids" to make sure all jokes have the correct IDs
  144. - "npm run validate-jokes" to make sure all jokes are in the correct format
  145. - "npm run add-joke" to add a joke
  146. - Renamed "category" endpoint to "joke"
  147. - The submission of empty jokes will now be prevented
  148. - Set up a new reverse proxy at "https://sv443.net/jokeapi/v2/" to let people slowly migrate to the new version
  149. - Re-validated all jokes and removed duplicates and re-flagged them
  150. - Added an analytics module that keeps track of everything and makes it possible for me to finally see some (anonymous) usage statistics (complies with the GDPR/DSGVO)
  151. - Joke IDs will now be cached to prevent the same joke from being served multiple times in a row (this is not perfect yet but much better than before)
  152. - The documentation page was completely rewritten and should now be easier to use and more concise
  153. - Updated dependencies and added some new ones
  154. - Updated the contributor guide (contributing.md file)
  155. [1.1.2]
  156. - joke categories are now case insensitive
  157. - trailing slashes now don't produce an "invalid category" error anymore
  158. [1.1.1]
  159. - better IP getter for the rate limiting
  160. - updated dependencies
  161. - very small improvements to the console window
  162. [1.1.0]
  163. - switched to ReadStreams instead of just loading the entire file to RAM to massively improve request performance (more details in issue #2)
  164. - this basically means it transmits the data over time, instead of loading it all to RAM and sending it at once
  165. - added rate limiting to counter DoS attacks (yes I've been getting some of those *sigh*)
  166. [1.0.0]
  167. - turned the single endpoint into multiple endpoints
  168. - "categories" to get all available categories
  169. - "info" to get all information about JokeAPI
  170. - "category/XY" to get a joke
  171. - added flag filter to blacklist certain jokes
  172. - added very sophisticated analytics
  173. - added "Allow" header to all incoming requests to better support preflight requests
  174. - added multiple file format support
  175. - JSON
  176. - XML
  177. - YAML
  178. - added JS and CSS injection into docs page to separate everything into three files (can be expanded to more files if needed)
  179. - fixed minor style glitches on the docs page
  180. - made the HTML and CSS of the docs way better
  181. - "scroll to top" button
  182. - smooth scroll
  183. - anchors to make linking to a certain header possible
  184. - turned "add joke" link into a button and moved it next to "scroll to top" button
  185. - fixed @import's
  186. - updated <meta>'s
  187. - turned "blank_" into "_blank" (sigh)
  188. - added flag filter to interactive example
  189. - did even more internal detail work
  190. - reformatted log files
  191. - clearing certain log files after a threshold is reached
  192. - updated dependencies
  193. - made better and more uniformly formatted error messages
  194. - added this changelog
  195. [0.1.2]
  196. - added "Dark" category
  197. - added joke submission form
  198. - improved interactive example
  199. - modified gitignore
  200. [0.1.1]
  201. - added interactive example on docs page
  202. - made icon on docs page smaller
  203. - added wrapper script
  204. [0.1.0]
  205. - basic functionality
  206. - 47 jokes
  207. - category filter