codex 1.7.11__py3-none-any.whl → 1.7.12__py3-none-any.whl

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.

Potentially problematic release.


This version of codex might be problematic. Click here for more details.

Files changed (624) hide show
  1. codex/choices/reader.py +1 -0
  2. codex/librarian/bookmark/bookmarkd.py +46 -14
  3. codex/librarian/bookmark/tasks.py +7 -0
  4. codex/librarian/bookmark/update.py +1 -22
  5. codex/librarian/bookmark/user_active.py +37 -0
  6. codex/serializers/reader.py +1 -0
  7. codex/settings/settings.py +14 -14
  8. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js +1 -0
  9. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.br +0 -0
  10. codex/static_root/assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js.gz +0 -0
  11. codex/static_root/assets/VCheckbox-DtuP7Cwl.js +1 -0
  12. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.br +0 -0
  13. codex/static_root/assets/VCheckbox-DtuP7Cwl.js.gz +0 -0
  14. codex/static_root/assets/{VCheckboxBtn-wiuE0DJ7.7bf28584c99f.js → VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js} +1 -1
  15. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.br +0 -0
  16. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js.gz +0 -0
  17. codex/static_root/assets/{VCheckboxBtn-wiuE0DJ7.js → VCheckboxBtn-D8jQ_2In.js} +1 -1
  18. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.br +0 -0
  19. codex/static_root/assets/VCheckboxBtn-D8jQ_2In.js.gz +0 -0
  20. codex/static_root/assets/{VCombobox-BQHELb_o.9f25a34994e2.css → VCombobox-Ckm4HgDu.css} +1 -1
  21. codex/static_root/assets/VCombobox-Ckm4HgDu.css.br +0 -0
  22. codex/static_root/assets/VCombobox-Ckm4HgDu.css.gz +0 -0
  23. codex/static_root/assets/{VCombobox-BQHELb_o.css → VCombobox-Ckm4HgDu.ece2fa32eddd.css} +1 -1
  24. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.br +0 -0
  25. codex/static_root/assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css.gz +0 -0
  26. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js +1 -0
  27. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.br +0 -0
  28. codex/static_root/assets/VCombobox-Da-CC3-D.7ce605203632.js.gz +0 -0
  29. codex/static_root/assets/VCombobox-Da-CC3-D.js +1 -0
  30. codex/static_root/assets/VCombobox-Da-CC3-D.js.br +0 -0
  31. codex/static_root/assets/VCombobox-Da-CC3-D.js.gz +0 -0
  32. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css +1 -0
  33. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.br +0 -0
  34. codex/static_root/assets/VDialog-Cj6z437E.cf3163940528.css.gz +0 -0
  35. codex/static_root/assets/VDialog-Cj6z437E.css +1 -0
  36. codex/static_root/assets/VDialog-Cj6z437E.css.br +0 -0
  37. codex/static_root/assets/VDialog-Cj6z437E.css.gz +0 -0
  38. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js +1 -0
  39. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.br +0 -0
  40. codex/static_root/assets/VDialog-CoOMSEbM.ef9258719fe6.js.gz +0 -0
  41. codex/static_root/assets/VDialog-CoOMSEbM.js +1 -0
  42. codex/static_root/assets/VDialog-CoOMSEbM.js.br +0 -0
  43. codex/static_root/assets/VDialog-CoOMSEbM.js.gz +0 -0
  44. codex/static_root/assets/{VDivider-JdO15t-G.37359224a349.js → VDivider-BXrVdmrm.94f80a82fabf.js} +1 -1
  45. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.br +0 -0
  46. codex/static_root/assets/VDivider-BXrVdmrm.94f80a82fabf.js.gz +0 -0
  47. codex/static_root/assets/{VDivider-JdO15t-G.js → VDivider-BXrVdmrm.js} +1 -1
  48. codex/static_root/assets/VDivider-BXrVdmrm.js.br +0 -0
  49. codex/static_root/assets/VDivider-BXrVdmrm.js.gz +0 -0
  50. codex/static_root/assets/{VExpansionPanels-vIBE1NDV.6a3323984fb8.js → VExpansionPanels-BvZsXmp0.288d3ac96c36.js} +1 -1
  51. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.br +0 -0
  52. codex/static_root/assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js.gz +0 -0
  53. codex/static_root/assets/{VExpansionPanels-vIBE1NDV.js → VExpansionPanels-BvZsXmp0.js} +1 -1
  54. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.br +0 -0
  55. codex/static_root/assets/VExpansionPanels-BvZsXmp0.js.gz +0 -0
  56. codex/static_root/assets/{VForm-dmDeV5_M.d487bb4a6a43.js → VForm-DXrmSq46.940c782abacb.js} +1 -1
  57. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.br +0 -0
  58. codex/static_root/assets/VForm-DXrmSq46.940c782abacb.js.gz +0 -0
  59. codex/static_root/assets/{VForm-dmDeV5_M.js → VForm-DXrmSq46.js} +1 -1
  60. codex/static_root/assets/VForm-DXrmSq46.js.br +0 -0
  61. codex/static_root/assets/VForm-DXrmSq46.js.gz +0 -0
  62. codex/static_root/assets/{VRadioGroup-D-95qXAG.a1e32c668c7b.js → VRadioGroup-DgtijQjG.a3093b0a1608.js} +1 -1
  63. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.br +0 -0
  64. codex/static_root/assets/VRadioGroup-DgtijQjG.a3093b0a1608.js.gz +0 -0
  65. codex/static_root/assets/{VRadioGroup-D-95qXAG.js → VRadioGroup-DgtijQjG.js} +1 -1
  66. codex/static_root/assets/VRadioGroup-DgtijQjG.js.br +0 -0
  67. codex/static_root/assets/VRadioGroup-DgtijQjG.js.gz +0 -0
  68. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js +1 -0
  69. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.br +0 -0
  70. codex/static_root/assets/VSelect-BpkoCPsm.b9086059c2ef.js.gz +0 -0
  71. codex/static_root/assets/VSelect-BpkoCPsm.js +1 -0
  72. codex/static_root/assets/VSelect-BpkoCPsm.js.br +0 -0
  73. codex/static_root/assets/VSelect-BpkoCPsm.js.gz +0 -0
  74. codex/static_root/assets/{VSelect-CP_CVb8s.css → VSelect-CBNrI-XP.css} +1 -1
  75. codex/static_root/assets/VSelect-CBNrI-XP.css.br +0 -0
  76. codex/static_root/assets/VSelect-CBNrI-XP.css.gz +0 -0
  77. codex/static_root/assets/{VSelect-CP_CVb8s.6309f7bf17bb.css → VSelect-CBNrI-XP.f03b50289345.css} +1 -1
  78. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.br +0 -0
  79. codex/static_root/assets/VSelect-CBNrI-XP.f03b50289345.css.gz +0 -0
  80. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js +1 -0
  81. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.br +0 -0
  82. codex/static_root/assets/VSelectionControl-DvYb3Pi4.39440575ef06.js.gz +0 -0
  83. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js +1 -0
  84. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.br +0 -0
  85. codex/static_root/assets/VSelectionControl-DvYb3Pi4.js.gz +0 -0
  86. codex/static_root/assets/VSelectionControl-RqBzwjYi.css +1 -0
  87. codex/static_root/assets/VSelectionControl-RqBzwjYi.css.br +0 -0
  88. codex/static_root/assets/VSelectionControl-RqBzwjYi.css.gz +0 -0
  89. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css +1 -0
  90. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.br +0 -0
  91. codex/static_root/assets/VSelectionControl-RqBzwjYi.ee7425525e63.css.gz +0 -0
  92. codex/static_root/assets/{VTable-DdAIbK7T.297df0a81277.js → VTable-DbFt9lJE.9ef6aa0ef98b.js} +1 -1
  93. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.br +0 -0
  94. codex/static_root/assets/VTable-DbFt9lJE.9ef6aa0ef98b.js.gz +0 -0
  95. codex/static_root/assets/{VTable-DdAIbK7T.js → VTable-DbFt9lJE.js} +1 -1
  96. codex/static_root/assets/VTable-DbFt9lJE.js.br +0 -0
  97. codex/static_root/assets/VTable-DbFt9lJE.js.gz +0 -0
  98. codex/static_root/assets/{VWindowItem-DDjwD_H9.712a45940238.js → VWindowItem-rXg83yw2.0fd72e50001d.js} +1 -1
  99. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.br +0 -0
  100. codex/static_root/assets/VWindowItem-rXg83yw2.0fd72e50001d.js.gz +0 -0
  101. codex/static_root/assets/{VWindowItem-DDjwD_H9.js → VWindowItem-rXg83yw2.js} +1 -1
  102. codex/static_root/assets/VWindowItem-rXg83yw2.js.br +0 -0
  103. codex/static_root/assets/VWindowItem-rXg83yw2.js.gz +0 -0
  104. codex/static_root/assets/{admin-i6V__Ibr.022e55cde6a4.js → admin--bDFN8Oq.a4abe921cf7c.js} +1 -1
  105. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.br +0 -0
  106. codex/static_root/assets/admin--bDFN8Oq.a4abe921cf7c.js.gz +0 -0
  107. codex/static_root/assets/{admin-i6V__Ibr.js → admin--bDFN8Oq.js} +1 -1
  108. codex/static_root/assets/admin--bDFN8Oq.js.br +0 -0
  109. codex/static_root/assets/admin--bDFN8Oq.js.gz +0 -0
  110. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css +1 -0
  111. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.br +0 -0
  112. codex/static_root/assets/admin-BNNYZVYA.4628d2f169aa.css.gz +0 -0
  113. codex/static_root/assets/admin-BNNYZVYA.css +1 -0
  114. codex/static_root/assets/admin-BNNYZVYA.css.br +0 -0
  115. codex/static_root/assets/admin-BNNYZVYA.css.gz +0 -0
  116. codex/static_root/assets/{admin-DD2SkqRx.039722adfae5.js → admin-BpE7-fB4.8c4508dad617.js} +1 -1
  117. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.br +0 -0
  118. codex/static_root/assets/admin-BpE7-fB4.8c4508dad617.js.gz +0 -0
  119. codex/static_root/assets/{admin-DD2SkqRx.js → admin-BpE7-fB4.js} +1 -1
  120. codex/static_root/assets/admin-BpE7-fB4.js.br +0 -0
  121. codex/static_root/assets/admin-BpE7-fB4.js.gz +0 -0
  122. codex/static_root/assets/{admin-menu-B4SzsUdK.6639a1cbf4e7.js → admin-menu-DEQXJH4i.bac02d0bea36.js} +1 -1
  123. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.br +0 -0
  124. codex/static_root/assets/admin-menu-DEQXJH4i.bac02d0bea36.js.gz +0 -0
  125. codex/static_root/assets/{admin-menu-B4SzsUdK.js → admin-menu-DEQXJH4i.js} +1 -1
  126. codex/static_root/assets/admin-menu-DEQXJH4i.js.br +0 -0
  127. codex/static_root/assets/admin-menu-DEQXJH4i.js.gz +0 -0
  128. codex/static_root/assets/{admin-settings-button-progress-DhAZCqmL.04743416c2a4.js → admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js} +1 -1
  129. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.br +0 -0
  130. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js.gz +0 -0
  131. codex/static_root/assets/{admin-settings-button-progress-DhAZCqmL.js → admin-settings-button-progress-wIXv-9g2.js} +1 -1
  132. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.br +0 -0
  133. codex/static_root/assets/admin-settings-button-progress-wIXv-9g2.js.gz +0 -0
  134. codex/static_root/assets/{browser-BJ95cpa4.e30f8b92b0c7.js → browser-Bu37CzsR.483b0af62dd4.js} +1 -1
  135. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.br +0 -0
  136. codex/static_root/assets/browser-Bu37CzsR.483b0af62dd4.js.gz +0 -0
  137. codex/static_root/assets/{browser-BJ95cpa4.js → browser-Bu37CzsR.js} +1 -1
  138. codex/static_root/assets/browser-Bu37CzsR.js.br +0 -0
  139. codex/static_root/assets/browser-Bu37CzsR.js.gz +0 -0
  140. codex/static_root/assets/{browser-Bf8JG2CE.3af978c1f766.css → browser-ClPcbrsf.c8620affa34d.css} +1 -1
  141. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.br +0 -0
  142. codex/static_root/assets/browser-ClPcbrsf.c8620affa34d.css.gz +0 -0
  143. codex/static_root/assets/{browser-Bf8JG2CE.css → browser-ClPcbrsf.css} +1 -1
  144. codex/static_root/assets/browser-ClPcbrsf.css.br +0 -0
  145. codex/static_root/assets/browser-ClPcbrsf.css.gz +0 -0
  146. codex/static_root/assets/{change-password-dialog-By3fj_TQ.c5eac945e204.js → change-password-dialog-DOioR_QK.75126226aeee.js} +1 -1
  147. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.br +0 -0
  148. codex/static_root/assets/change-password-dialog-DOioR_QK.75126226aeee.js.gz +0 -0
  149. codex/static_root/assets/{change-password-dialog-By3fj_TQ.js → change-password-dialog-DOioR_QK.js} +1 -1
  150. codex/static_root/assets/change-password-dialog-DOioR_QK.js.br +0 -0
  151. codex/static_root/assets/change-password-dialog-DOioR_QK.js.gz +0 -0
  152. codex/static_root/assets/{confirm-dialog-dLx7MoUh.06fae90da0ac.js → confirm-dialog-BRUkbajJ.9670ca0df005.js} +1 -1
  153. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.br +0 -0
  154. codex/static_root/assets/confirm-dialog-BRUkbajJ.9670ca0df005.js.gz +0 -0
  155. codex/static_root/assets/{confirm-dialog-dLx7MoUh.js → confirm-dialog-BRUkbajJ.js} +1 -1
  156. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.br +0 -0
  157. codex/static_root/assets/confirm-dialog-BRUkbajJ.js.gz +0 -0
  158. codex/static_root/assets/{datetime-column-CYEe6t74.2500e9a7b4a4.js → datetime-column-CdYfgPon.662194dbed49.js} +1 -1
  159. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.br +0 -0
  160. codex/static_root/assets/datetime-column-CdYfgPon.662194dbed49.js.gz +0 -0
  161. codex/static_root/assets/{datetime-column-CYEe6t74.js → datetime-column-CdYfgPon.js} +1 -1
  162. codex/static_root/assets/datetime-column-CdYfgPon.js.br +0 -0
  163. codex/static_root/assets/datetime-column-CdYfgPon.js.gz +0 -0
  164. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js +1 -0
  165. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.br +0 -0
  166. codex/static_root/assets/filter-D-aPctKp.c9b14ffd360c.js.gz +0 -0
  167. codex/static_root/assets/filter-D-aPctKp.js +1 -0
  168. codex/static_root/assets/filter-D-aPctKp.js.br +0 -0
  169. codex/static_root/assets/filter-D-aPctKp.js.gz +0 -0
  170. codex/static_root/assets/{flag-tab-ElQxMWbZ.e5ba707bac09.js → flag-tab-kMgSs3vx.7ca3ec2db15e.js} +1 -1
  171. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.br +0 -0
  172. codex/static_root/assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js.gz +0 -0
  173. codex/static_root/assets/{flag-tab-ElQxMWbZ.js → flag-tab-kMgSs3vx.js} +1 -1
  174. codex/static_root/assets/flag-tab-kMgSs3vx.js.br +0 -0
  175. codex/static_root/assets/flag-tab-kMgSs3vx.js.gz +0 -0
  176. codex/static_root/assets/{forwardRefs-Dyi06MPF.601ab1fd99b1.css → forwardRefs-BhPKpkYY.1032af9ac8fd.css} +1 -1
  177. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.br +0 -0
  178. codex/static_root/assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css.gz +0 -0
  179. codex/static_root/assets/{forwardRefs-Dyi06MPF.css → forwardRefs-BhPKpkYY.css} +1 -1
  180. codex/static_root/assets/forwardRefs-BhPKpkYY.css.br +0 -0
  181. codex/static_root/assets/forwardRefs-BhPKpkYY.css.gz +0 -0
  182. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js +1 -0
  183. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.br +0 -0
  184. codex/static_root/assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js.gz +0 -0
  185. codex/static_root/assets/forwardRefs-BxFNqo8E.js +1 -0
  186. codex/static_root/assets/forwardRefs-BxFNqo8E.js.br +0 -0
  187. codex/static_root/assets/forwardRefs-BxFNqo8E.js.gz +0 -0
  188. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css +1 -0
  189. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.br +0 -0
  190. codex/static_root/assets/group-tab-Bi681uR0.3246ac0f7cec.css.gz +0 -0
  191. codex/static_root/assets/group-tab-Bi681uR0.css +1 -0
  192. codex/static_root/assets/group-tab-Bi681uR0.css.br +0 -0
  193. codex/static_root/assets/group-tab-Bi681uR0.css.gz +0 -0
  194. codex/static_root/assets/{group-tab-CqVQHStZ.4c72ec7c5179.js → group-tab-DK0pQx_6.e02dab76e8e6.js} +1 -1
  195. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.br +0 -0
  196. codex/static_root/assets/group-tab-DK0pQx_6.e02dab76e8e6.js.gz +0 -0
  197. codex/static_root/assets/{group-tab-CqVQHStZ.js → group-tab-DK0pQx_6.js} +1 -1
  198. codex/static_root/assets/group-tab-DK0pQx_6.js.br +0 -0
  199. codex/static_root/assets/group-tab-DK0pQx_6.js.gz +0 -0
  200. codex/static_root/assets/{http-error-D9X2r_ts.71a1241440db.js → http-error-D4kgjRm6.71e8ec284567.js} +1 -1
  201. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.br +0 -0
  202. codex/static_root/assets/http-error-D4kgjRm6.71e8ec284567.js.gz +0 -0
  203. codex/static_root/assets/{http-error-D9X2r_ts.js → http-error-D4kgjRm6.js} +1 -1
  204. codex/static_root/assets/http-error-D4kgjRm6.js.br +0 -0
  205. codex/static_root/assets/http-error-D4kgjRm6.js.gz +0 -0
  206. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css +1 -0
  207. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.br +3 -0
  208. codex/static_root/assets/index-Czf-fUM7.50a7466d956f.css.gz +0 -0
  209. codex/static_root/assets/index-Czf-fUM7.css +1 -0
  210. codex/static_root/assets/index-Czf-fUM7.css.br +3 -0
  211. codex/static_root/assets/index-Czf-fUM7.css.gz +0 -0
  212. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js +1 -0
  213. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.br +0 -0
  214. codex/static_root/assets/index-D3gnYqT3.c326544f2853.js.gz +0 -0
  215. codex/static_root/assets/index-D3gnYqT3.js +1 -0
  216. codex/static_root/assets/index-D3gnYqT3.js.br +0 -0
  217. codex/static_root/assets/index-D3gnYqT3.js.gz +0 -0
  218. codex/static_root/assets/{library-tab-gTOFQ_iR.43484dac2129.js → library-tab-MhD2T2Fw.052fe1d43941.js} +1 -1
  219. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.br +0 -0
  220. codex/static_root/assets/library-tab-MhD2T2Fw.052fe1d43941.js.gz +0 -0
  221. codex/static_root/assets/{library-tab-gTOFQ_iR.js → library-tab-MhD2T2Fw.js} +1 -1
  222. codex/static_root/assets/library-tab-MhD2T2Fw.js.br +0 -0
  223. codex/static_root/assets/library-tab-MhD2T2Fw.js.gz +0 -0
  224. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js +35 -0
  225. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.br +0 -0
  226. codex/static_root/assets/main-JUy8mnXG.d8a52b6ef508.js.gz +0 -0
  227. codex/static_root/assets/main-JUy8mnXG.js +35 -0
  228. codex/static_root/assets/main-JUy8mnXG.js.br +0 -0
  229. codex/static_root/assets/main-JUy8mnXG.js.gz +0 -0
  230. codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css → main-Of3aYkZ7.91c75c4fbaa6.css} +1 -1
  231. codex/static_root/assets/main-Of3aYkZ7.91c75c4fbaa6.css.br +0 -0
  232. codex/static_root/assets/{main-K8cER0IH.d529e8b3f52a.css.gz → main-Of3aYkZ7.91c75c4fbaa6.css.gz} +0 -0
  233. codex/static_root/assets/{main-K8cER0IH.css → main-Of3aYkZ7.css} +1 -1
  234. codex/static_root/assets/main-Of3aYkZ7.css.br +0 -0
  235. codex/static_root/assets/{main-K8cER0IH.css.gz → main-Of3aYkZ7.css.gz} +0 -0
  236. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js +1 -0
  237. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.br +0 -0
  238. codex/static_root/assets/pager-full-pdf-CcORwqD4.78c861366624.js.gz +0 -0
  239. codex/static_root/assets/pager-full-pdf-CcORwqD4.js +1 -0
  240. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.br +0 -0
  241. codex/static_root/assets/pager-full-pdf-CcORwqD4.js.gz +0 -0
  242. codex/static_root/assets/{pagination-toolbar-BwTjydSq.3086700f965d.js → pagination-toolbar-Cufj0Rqv.3f3244ad0590.js} +1 -1
  243. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.br +0 -0
  244. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js.gz +0 -0
  245. codex/static_root/assets/{pagination-toolbar-BwTjydSq.js → pagination-toolbar-Cufj0Rqv.js} +1 -1
  246. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.br +0 -0
  247. codex/static_root/assets/pagination-toolbar-Cufj0Rqv.js.gz +0 -0
  248. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css +1 -0
  249. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.br +0 -0
  250. codex/static_root/assets/pagination-toolbar-DkYjhdVb.css.gz +0 -0
  251. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css +1 -0
  252. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.br +0 -0
  253. codex/static_root/assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css.gz +0 -0
  254. codex/static_root/assets/{pdf-doc-cr8rSW0K.42089de27088.js → pdf-doc-HpDB0I3q.a991cdc377eb.js} +1 -1
  255. codex/static_root/assets/pdf-doc-HpDB0I3q.a991cdc377eb.js.br +0 -0
  256. codex/static_root/assets/pdf-doc-HpDB0I3q.a991cdc377eb.js.gz +0 -0
  257. codex/static_root/assets/{pdf-doc-cr8rSW0K.js → pdf-doc-HpDB0I3q.js} +1 -1
  258. codex/static_root/assets/pdf-doc-HpDB0I3q.js.br +0 -0
  259. codex/static_root/assets/pdf-doc-HpDB0I3q.js.gz +0 -0
  260. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css +1 -0
  261. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.br +0 -0
  262. codex/static_root/assets/reader-BIqif2zL.755da5eee67d.css.gz +0 -0
  263. codex/static_root/assets/reader-BIqif2zL.css +1 -0
  264. codex/static_root/assets/reader-BIqif2zL.css.br +0 -0
  265. codex/static_root/assets/reader-BIqif2zL.css.gz +0 -0
  266. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js +2 -0
  267. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.br +0 -0
  268. codex/static_root/assets/reader-CgmGRxud.dd7fceeb36e4.js.gz +0 -0
  269. codex/static_root/assets/reader-CgmGRxud.js +2 -0
  270. codex/static_root/assets/reader-CgmGRxud.js.br +0 -0
  271. codex/static_root/assets/reader-CgmGRxud.js.gz +0 -0
  272. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js +1 -0
  273. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.br +0 -0
  274. codex/static_root/assets/relation-chips-CV_iMj1X.de28053775a6.js.gz +0 -0
  275. codex/static_root/assets/relation-chips-CV_iMj1X.js +1 -0
  276. codex/static_root/assets/relation-chips-CV_iMj1X.js.br +0 -0
  277. codex/static_root/assets/relation-chips-CV_iMj1X.js.gz +0 -0
  278. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css +1 -0
  279. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.br +0 -0
  280. codex/static_root/assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css.gz +0 -0
  281. codex/static_root/assets/relation-chips-D7i-g7Zv.css +1 -0
  282. codex/static_root/assets/relation-chips-D7i-g7Zv.css.br +0 -0
  283. codex/static_root/assets/relation-chips-D7i-g7Zv.css.gz +0 -0
  284. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css +1 -0
  285. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.br +0 -0
  286. codex/static_root/assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css.gz +0 -0
  287. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css +1 -0
  288. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.br +0 -0
  289. codex/static_root/assets/settings-drawer-Cz7dC3Ew.css.gz +0 -0
  290. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js +2 -0
  291. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.br +0 -0
  292. codex/static_root/assets/settings-drawer-p6ZjyJ07.128e2c761104.js.gz +0 -0
  293. codex/static_root/assets/settings-drawer-p6ZjyJ07.js +2 -0
  294. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.br +0 -0
  295. codex/static_root/assets/settings-drawer-p6ZjyJ07.js.gz +0 -0
  296. codex/static_root/assets/{ssrBoot-CAsgsyDf.726bc1a727b7.js → ssrBoot-B73_e82Z.3d5063c17c68.js} +1 -1
  297. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.br +0 -0
  298. codex/static_root/assets/ssrBoot-B73_e82Z.3d5063c17c68.js.gz +0 -0
  299. codex/static_root/assets/{ssrBoot-CAsgsyDf.js → ssrBoot-B73_e82Z.js} +1 -1
  300. codex/static_root/assets/ssrBoot-B73_e82Z.js.br +0 -0
  301. codex/static_root/assets/ssrBoot-B73_e82Z.js.gz +0 -0
  302. codex/static_root/assets/{stats-tab-B6L711cO.b6a42655cd70.css → stats-tab-CGY8r-es.b06c55bdaeaa.css} +1 -1
  303. codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.br +0 -0
  304. codex/static_root/assets/stats-tab-CGY8r-es.b06c55bdaeaa.css.gz +0 -0
  305. codex/static_root/assets/{stats-tab-B6L711cO.css → stats-tab-CGY8r-es.css} +1 -1
  306. codex/static_root/assets/stats-tab-CGY8r-es.css.br +0 -0
  307. codex/static_root/assets/stats-tab-CGY8r-es.css.gz +0 -0
  308. codex/static_root/assets/{stats-tab-B2rq8Yvl.3d1cb4751160.js → stats-tab-Kt45gqtN.858a124412d0.js} +1 -1
  309. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.br +0 -0
  310. codex/static_root/assets/stats-tab-Kt45gqtN.858a124412d0.js.gz +0 -0
  311. codex/static_root/assets/{stats-tab-B2rq8Yvl.js → stats-tab-Kt45gqtN.js} +1 -1
  312. codex/static_root/assets/stats-tab-Kt45gqtN.js.br +0 -0
  313. codex/static_root/assets/stats-tab-Kt45gqtN.js.gz +0 -0
  314. codex/static_root/assets/{task-tab-DL6WROkd.6c75d2f501ad.js → task-tab-DDKv2JN0.ea54c5cf8e0f.js} +1 -1
  315. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.br +0 -0
  316. codex/static_root/assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js.gz +0 -0
  317. codex/static_root/assets/{task-tab-DL6WROkd.js → task-tab-DDKv2JN0.js} +1 -1
  318. codex/static_root/assets/task-tab-DDKv2JN0.js.br +0 -0
  319. codex/static_root/assets/task-tab-DDKv2JN0.js.gz +0 -0
  320. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js +1 -0
  321. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.br +0 -0
  322. codex/static_root/assets/unauthorized-CvdCW-Cq.a7bd69980089.js.gz +0 -0
  323. codex/static_root/assets/unauthorized-CvdCW-Cq.js +1 -0
  324. codex/static_root/assets/unauthorized-CvdCW-Cq.js.br +0 -0
  325. codex/static_root/assets/unauthorized-CvdCW-Cq.js.gz +0 -0
  326. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css +1 -0
  327. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.br +0 -0
  328. codex/static_root/assets/unauthorized-DeuhBNVr.6261a283874e.css.gz +0 -0
  329. codex/static_root/assets/unauthorized-DeuhBNVr.css +1 -0
  330. codex/static_root/assets/unauthorized-DeuhBNVr.css.br +0 -0
  331. codex/static_root/assets/unauthorized-DeuhBNVr.css.gz +0 -0
  332. codex/static_root/assets/{user-tab-pnWYdoCh.b8b1c35dc74b.js → user-tab-77Bjv-sy.994ac66245a1.js} +1 -1
  333. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.br +0 -0
  334. codex/static_root/assets/user-tab-77Bjv-sy.994ac66245a1.js.gz +0 -0
  335. codex/static_root/assets/{user-tab-pnWYdoCh.js → user-tab-77Bjv-sy.js} +1 -1
  336. codex/static_root/assets/user-tab-77Bjv-sy.js.br +0 -0
  337. codex/static_root/assets/user-tab-77Bjv-sy.js.gz +0 -0
  338. codex/static_root/manifest.800f1750bf03.json +757 -0
  339. codex/static_root/manifest.800f1750bf03.json.br +0 -0
  340. codex/static_root/manifest.800f1750bf03.json.gz +0 -0
  341. codex/static_root/manifest.json +339 -339
  342. codex/static_root/manifest.json.br +0 -0
  343. codex/static_root/manifest.json.gz +0 -0
  344. codex/static_root/staticfiles.json +1 -1
  345. codex/views/browser/bookmark.py +1 -1
  346. codex/views/download.py +1 -0
  347. codex/views/frontend.py +3 -1
  348. codex/views/mixins.py +13 -0
  349. codex/views/opds/v1/feed.py +3 -1
  350. codex/views/opds/v2/feed.py +3 -1
  351. {codex-1.7.11.dist-info → codex-1.7.12.dist-info}/METADATA +7 -4
  352. {codex-1.7.11.dist-info → codex-1.7.12.dist-info}/RECORD +355 -354
  353. {codex-1.7.11.dist-info → codex-1.7.12.dist-info}/WHEEL +1 -1
  354. codex/static_root/assets/VCheckbox-BWg23XH7.1d0de86f89e8.js +0 -1
  355. codex/static_root/assets/VCheckbox-BWg23XH7.1d0de86f89e8.js.br +0 -0
  356. codex/static_root/assets/VCheckbox-BWg23XH7.1d0de86f89e8.js.gz +0 -0
  357. codex/static_root/assets/VCheckbox-BWg23XH7.js +0 -1
  358. codex/static_root/assets/VCheckbox-BWg23XH7.js.br +0 -0
  359. codex/static_root/assets/VCheckbox-BWg23XH7.js.gz +0 -0
  360. codex/static_root/assets/VCheckboxBtn-wiuE0DJ7.7bf28584c99f.js.br +0 -0
  361. codex/static_root/assets/VCheckboxBtn-wiuE0DJ7.7bf28584c99f.js.gz +0 -0
  362. codex/static_root/assets/VCheckboxBtn-wiuE0DJ7.js.br +0 -0
  363. codex/static_root/assets/VCheckboxBtn-wiuE0DJ7.js.gz +0 -0
  364. codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.br +0 -0
  365. codex/static_root/assets/VCombobox-BQHELb_o.9f25a34994e2.css.gz +0 -0
  366. codex/static_root/assets/VCombobox-BQHELb_o.css.br +0 -0
  367. codex/static_root/assets/VCombobox-BQHELb_o.css.gz +0 -0
  368. codex/static_root/assets/VCombobox-x6zK3RJ3.c7241fcc5a64.js +0 -1
  369. codex/static_root/assets/VCombobox-x6zK3RJ3.c7241fcc5a64.js.br +0 -0
  370. codex/static_root/assets/VCombobox-x6zK3RJ3.c7241fcc5a64.js.gz +0 -0
  371. codex/static_root/assets/VCombobox-x6zK3RJ3.js +0 -1
  372. codex/static_root/assets/VCombobox-x6zK3RJ3.js.br +0 -0
  373. codex/static_root/assets/VCombobox-x6zK3RJ3.js.gz +0 -0
  374. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css +0 -1
  375. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.br +0 -0
  376. codex/static_root/assets/VDialog-DYkXmPin.3991696c6a81.css.gz +0 -0
  377. codex/static_root/assets/VDialog-DYkXmPin.css +0 -1
  378. codex/static_root/assets/VDialog-DYkXmPin.css.br +0 -0
  379. codex/static_root/assets/VDialog-DYkXmPin.css.gz +0 -0
  380. codex/static_root/assets/VDialog-OthWhLDZ.deedc659cbb7.js +0 -1
  381. codex/static_root/assets/VDialog-OthWhLDZ.deedc659cbb7.js.br +0 -0
  382. codex/static_root/assets/VDialog-OthWhLDZ.deedc659cbb7.js.gz +0 -0
  383. codex/static_root/assets/VDialog-OthWhLDZ.js +0 -1
  384. codex/static_root/assets/VDialog-OthWhLDZ.js.br +0 -0
  385. codex/static_root/assets/VDialog-OthWhLDZ.js.gz +0 -0
  386. codex/static_root/assets/VDivider-JdO15t-G.37359224a349.js.br +0 -0
  387. codex/static_root/assets/VDivider-JdO15t-G.37359224a349.js.gz +0 -0
  388. codex/static_root/assets/VDivider-JdO15t-G.js.br +0 -0
  389. codex/static_root/assets/VDivider-JdO15t-G.js.gz +0 -0
  390. codex/static_root/assets/VExpansionPanels-vIBE1NDV.6a3323984fb8.js.br +0 -0
  391. codex/static_root/assets/VExpansionPanels-vIBE1NDV.6a3323984fb8.js.gz +0 -0
  392. codex/static_root/assets/VExpansionPanels-vIBE1NDV.js.br +0 -0
  393. codex/static_root/assets/VExpansionPanels-vIBE1NDV.js.gz +0 -0
  394. codex/static_root/assets/VForm-dmDeV5_M.d487bb4a6a43.js.br +0 -0
  395. codex/static_root/assets/VForm-dmDeV5_M.d487bb4a6a43.js.gz +0 -0
  396. codex/static_root/assets/VForm-dmDeV5_M.js.br +0 -0
  397. codex/static_root/assets/VForm-dmDeV5_M.js.gz +0 -0
  398. codex/static_root/assets/VRadioGroup-D-95qXAG.a1e32c668c7b.js.br +0 -0
  399. codex/static_root/assets/VRadioGroup-D-95qXAG.a1e32c668c7b.js.gz +0 -0
  400. codex/static_root/assets/VRadioGroup-D-95qXAG.js.br +0 -0
  401. codex/static_root/assets/VRadioGroup-D-95qXAG.js.gz +0 -0
  402. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.br +0 -0
  403. codex/static_root/assets/VSelect-CP_CVb8s.6309f7bf17bb.css.gz +0 -0
  404. codex/static_root/assets/VSelect-CP_CVb8s.css.br +0 -0
  405. codex/static_root/assets/VSelect-CP_CVb8s.css.gz +0 -0
  406. codex/static_root/assets/VSelect-CQoVHUk_.b126cfd240df.js +0 -1
  407. codex/static_root/assets/VSelect-CQoVHUk_.b126cfd240df.js.br +0 -0
  408. codex/static_root/assets/VSelect-CQoVHUk_.b126cfd240df.js.gz +0 -0
  409. codex/static_root/assets/VSelect-CQoVHUk_.js +0 -1
  410. codex/static_root/assets/VSelect-CQoVHUk_.js.br +0 -0
  411. codex/static_root/assets/VSelect-CQoVHUk_.js.gz +0 -0
  412. codex/static_root/assets/VSelectionControl-DR3WB2kF.8e2b62af4420.js +0 -1
  413. codex/static_root/assets/VSelectionControl-DR3WB2kF.8e2b62af4420.js.br +0 -0
  414. codex/static_root/assets/VSelectionControl-DR3WB2kF.8e2b62af4420.js.gz +0 -0
  415. codex/static_root/assets/VSelectionControl-DR3WB2kF.js +0 -1
  416. codex/static_root/assets/VSelectionControl-DR3WB2kF.js.br +0 -0
  417. codex/static_root/assets/VSelectionControl-DR3WB2kF.js.gz +0 -0
  418. codex/static_root/assets/VSelectionControl-DtEh26JD.css +0 -1
  419. codex/static_root/assets/VSelectionControl-DtEh26JD.css.br +0 -0
  420. codex/static_root/assets/VSelectionControl-DtEh26JD.css.gz +0 -0
  421. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css +0 -1
  422. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.br +0 -0
  423. codex/static_root/assets/VSelectionControl-DtEh26JD.eec621947209.css.gz +0 -0
  424. codex/static_root/assets/VTable-DdAIbK7T.297df0a81277.js.br +0 -0
  425. codex/static_root/assets/VTable-DdAIbK7T.297df0a81277.js.gz +0 -0
  426. codex/static_root/assets/VTable-DdAIbK7T.js.br +0 -0
  427. codex/static_root/assets/VTable-DdAIbK7T.js.gz +0 -0
  428. codex/static_root/assets/VWindowItem-DDjwD_H9.712a45940238.js.br +0 -0
  429. codex/static_root/assets/VWindowItem-DDjwD_H9.712a45940238.js.gz +0 -0
  430. codex/static_root/assets/VWindowItem-DDjwD_H9.js.br +0 -0
  431. codex/static_root/assets/VWindowItem-DDjwD_H9.js.gz +0 -0
  432. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css +0 -1
  433. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.br +0 -0
  434. codex/static_root/assets/admin-C3iCIUnm.06cb213f624d.css.gz +0 -0
  435. codex/static_root/assets/admin-C3iCIUnm.css +0 -1
  436. codex/static_root/assets/admin-C3iCIUnm.css.br +0 -0
  437. codex/static_root/assets/admin-C3iCIUnm.css.gz +0 -0
  438. codex/static_root/assets/admin-DD2SkqRx.039722adfae5.js.br +0 -0
  439. codex/static_root/assets/admin-DD2SkqRx.039722adfae5.js.gz +0 -0
  440. codex/static_root/assets/admin-DD2SkqRx.js.br +0 -0
  441. codex/static_root/assets/admin-DD2SkqRx.js.gz +0 -0
  442. codex/static_root/assets/admin-i6V__Ibr.022e55cde6a4.js.br +0 -0
  443. codex/static_root/assets/admin-i6V__Ibr.022e55cde6a4.js.gz +0 -0
  444. codex/static_root/assets/admin-i6V__Ibr.js.br +0 -0
  445. codex/static_root/assets/admin-i6V__Ibr.js.gz +0 -0
  446. codex/static_root/assets/admin-menu-B4SzsUdK.6639a1cbf4e7.js.br +0 -0
  447. codex/static_root/assets/admin-menu-B4SzsUdK.6639a1cbf4e7.js.gz +0 -0
  448. codex/static_root/assets/admin-menu-B4SzsUdK.js.br +0 -0
  449. codex/static_root/assets/admin-menu-B4SzsUdK.js.gz +0 -0
  450. codex/static_root/assets/admin-settings-button-progress-DhAZCqmL.04743416c2a4.js.br +0 -0
  451. codex/static_root/assets/admin-settings-button-progress-DhAZCqmL.04743416c2a4.js.gz +0 -0
  452. codex/static_root/assets/admin-settings-button-progress-DhAZCqmL.js.br +0 -0
  453. codex/static_root/assets/admin-settings-button-progress-DhAZCqmL.js.gz +0 -0
  454. codex/static_root/assets/browser-BJ95cpa4.e30f8b92b0c7.js.br +0 -0
  455. codex/static_root/assets/browser-BJ95cpa4.e30f8b92b0c7.js.gz +0 -0
  456. codex/static_root/assets/browser-BJ95cpa4.js.br +0 -0
  457. codex/static_root/assets/browser-BJ95cpa4.js.gz +0 -0
  458. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.br +0 -0
  459. codex/static_root/assets/browser-Bf8JG2CE.3af978c1f766.css.gz +0 -0
  460. codex/static_root/assets/browser-Bf8JG2CE.css.br +0 -0
  461. codex/static_root/assets/browser-Bf8JG2CE.css.gz +0 -0
  462. codex/static_root/assets/change-password-dialog-By3fj_TQ.c5eac945e204.js.br +0 -0
  463. codex/static_root/assets/change-password-dialog-By3fj_TQ.c5eac945e204.js.gz +0 -0
  464. codex/static_root/assets/change-password-dialog-By3fj_TQ.js.br +0 -0
  465. codex/static_root/assets/change-password-dialog-By3fj_TQ.js.gz +0 -0
  466. codex/static_root/assets/confirm-dialog-dLx7MoUh.06fae90da0ac.js.br +0 -0
  467. codex/static_root/assets/confirm-dialog-dLx7MoUh.06fae90da0ac.js.gz +0 -0
  468. codex/static_root/assets/confirm-dialog-dLx7MoUh.js.br +0 -0
  469. codex/static_root/assets/confirm-dialog-dLx7MoUh.js.gz +0 -0
  470. codex/static_root/assets/datetime-column-CYEe6t74.2500e9a7b4a4.js.br +0 -0
  471. codex/static_root/assets/datetime-column-CYEe6t74.2500e9a7b4a4.js.gz +0 -0
  472. codex/static_root/assets/datetime-column-CYEe6t74.js.br +0 -0
  473. codex/static_root/assets/datetime-column-CYEe6t74.js.gz +0 -0
  474. codex/static_root/assets/filter-CX5R_mAN.0fd3b1a14779.js +0 -1
  475. codex/static_root/assets/filter-CX5R_mAN.0fd3b1a14779.js.br +0 -0
  476. codex/static_root/assets/filter-CX5R_mAN.0fd3b1a14779.js.gz +0 -0
  477. codex/static_root/assets/filter-CX5R_mAN.js +0 -1
  478. codex/static_root/assets/filter-CX5R_mAN.js.br +0 -0
  479. codex/static_root/assets/filter-CX5R_mAN.js.gz +0 -0
  480. codex/static_root/assets/flag-tab-ElQxMWbZ.e5ba707bac09.js.br +0 -0
  481. codex/static_root/assets/flag-tab-ElQxMWbZ.e5ba707bac09.js.gz +0 -0
  482. codex/static_root/assets/flag-tab-ElQxMWbZ.js.br +0 -0
  483. codex/static_root/assets/flag-tab-ElQxMWbZ.js.gz +0 -0
  484. codex/static_root/assets/forwardRefs-DlsL_f4M.662d81eac923.js +0 -1
  485. codex/static_root/assets/forwardRefs-DlsL_f4M.662d81eac923.js.br +0 -0
  486. codex/static_root/assets/forwardRefs-DlsL_f4M.662d81eac923.js.gz +0 -0
  487. codex/static_root/assets/forwardRefs-DlsL_f4M.js +0 -1
  488. codex/static_root/assets/forwardRefs-DlsL_f4M.js.br +0 -0
  489. codex/static_root/assets/forwardRefs-DlsL_f4M.js.gz +0 -0
  490. codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.br +0 -0
  491. codex/static_root/assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css.gz +0 -0
  492. codex/static_root/assets/forwardRefs-Dyi06MPF.css.br +0 -0
  493. codex/static_root/assets/forwardRefs-Dyi06MPF.css.gz +0 -0
  494. codex/static_root/assets/group-tab-CqVQHStZ.4c72ec7c5179.js.br +0 -0
  495. codex/static_root/assets/group-tab-CqVQHStZ.4c72ec7c5179.js.gz +0 -0
  496. codex/static_root/assets/group-tab-CqVQHStZ.js.br +0 -0
  497. codex/static_root/assets/group-tab-CqVQHStZ.js.gz +0 -0
  498. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css +0 -1
  499. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.br +0 -0
  500. codex/static_root/assets/group-tab-_vKWzoyd.948e907b1e6b.css.gz +0 -0
  501. codex/static_root/assets/group-tab-_vKWzoyd.css +0 -1
  502. codex/static_root/assets/group-tab-_vKWzoyd.css.br +0 -0
  503. codex/static_root/assets/group-tab-_vKWzoyd.css.gz +0 -0
  504. codex/static_root/assets/http-error-D9X2r_ts.71a1241440db.js.br +0 -0
  505. codex/static_root/assets/http-error-D9X2r_ts.71a1241440db.js.gz +0 -0
  506. codex/static_root/assets/http-error-D9X2r_ts.js.br +0 -0
  507. codex/static_root/assets/http-error-D9X2r_ts.js.gz +0 -0
  508. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css +0 -1
  509. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.br +0 -0
  510. codex/static_root/assets/index-BHXJTQ4V.523d7b3d350f.css.gz +0 -0
  511. codex/static_root/assets/index-BHXJTQ4V.css +0 -1
  512. codex/static_root/assets/index-BHXJTQ4V.css.br +0 -0
  513. codex/static_root/assets/index-BHXJTQ4V.css.gz +0 -0
  514. codex/static_root/assets/index-Ciy2g1_l.a4d7e7a1851a.js +0 -1
  515. codex/static_root/assets/index-Ciy2g1_l.a4d7e7a1851a.js.br +0 -0
  516. codex/static_root/assets/index-Ciy2g1_l.a4d7e7a1851a.js.gz +0 -0
  517. codex/static_root/assets/index-Ciy2g1_l.js +0 -1
  518. codex/static_root/assets/index-Ciy2g1_l.js.br +0 -0
  519. codex/static_root/assets/index-Ciy2g1_l.js.gz +0 -0
  520. codex/static_root/assets/library-tab-gTOFQ_iR.43484dac2129.js.br +0 -0
  521. codex/static_root/assets/library-tab-gTOFQ_iR.43484dac2129.js.gz +0 -0
  522. codex/static_root/assets/library-tab-gTOFQ_iR.js.br +0 -0
  523. codex/static_root/assets/library-tab-gTOFQ_iR.js.gz +0 -0
  524. codex/static_root/assets/main-Bh4TRBe6.eabe3bd7c355.js +0 -35
  525. codex/static_root/assets/main-Bh4TRBe6.eabe3bd7c355.js.br +0 -0
  526. codex/static_root/assets/main-Bh4TRBe6.eabe3bd7c355.js.gz +0 -0
  527. codex/static_root/assets/main-Bh4TRBe6.js +0 -35
  528. codex/static_root/assets/main-Bh4TRBe6.js.br +0 -0
  529. codex/static_root/assets/main-Bh4TRBe6.js.gz +0 -0
  530. codex/static_root/assets/main-K8cER0IH.css.br +0 -0
  531. codex/static_root/assets/main-K8cER0IH.d529e8b3f52a.css.br +0 -0
  532. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.fb70d1a2caab.js +0 -1
  533. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.fb70d1a2caab.js.br +0 -0
  534. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.fb70d1a2caab.js.gz +0 -0
  535. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.js +0 -1
  536. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.js.br +0 -0
  537. codex/static_root/assets/pager-full-pdf-BJ2ugo4Y.js.gz +0 -0
  538. codex/static_root/assets/pagination-toolbar-BwTjydSq.3086700f965d.js.br +0 -0
  539. codex/static_root/assets/pagination-toolbar-BwTjydSq.3086700f965d.js.gz +0 -0
  540. codex/static_root/assets/pagination-toolbar-BwTjydSq.js.br +0 -0
  541. codex/static_root/assets/pagination-toolbar-BwTjydSq.js.gz +0 -0
  542. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css +0 -1
  543. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.br +0 -0
  544. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css.gz +0 -0
  545. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css +0 -1
  546. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.br +0 -0
  547. codex/static_root/assets/pagination-toolbar-CzT9Hc3f.css.gz +0 -0
  548. codex/static_root/assets/pdf-doc-cr8rSW0K.42089de27088.js.br +0 -0
  549. codex/static_root/assets/pdf-doc-cr8rSW0K.42089de27088.js.gz +0 -0
  550. codex/static_root/assets/pdf-doc-cr8rSW0K.js.br +0 -0
  551. codex/static_root/assets/pdf-doc-cr8rSW0K.js.gz +0 -0
  552. codex/static_root/assets/reader-B2vknx-p.b97c9147c346.js +0 -2
  553. codex/static_root/assets/reader-B2vknx-p.b97c9147c346.js.br +0 -0
  554. codex/static_root/assets/reader-B2vknx-p.b97c9147c346.js.gz +0 -0
  555. codex/static_root/assets/reader-B2vknx-p.js +0 -2
  556. codex/static_root/assets/reader-B2vknx-p.js.br +0 -0
  557. codex/static_root/assets/reader-B2vknx-p.js.gz +0 -0
  558. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css +0 -1
  559. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.br +0 -0
  560. codex/static_root/assets/reader-DdWNjEED.97c15f661faf.css.gz +0 -0
  561. codex/static_root/assets/reader-DdWNjEED.css +0 -1
  562. codex/static_root/assets/reader-DdWNjEED.css.br +0 -0
  563. codex/static_root/assets/reader-DdWNjEED.css.gz +0 -0
  564. codex/static_root/assets/relation-chips-BJETO4cu.5cc9f906ae86.js +0 -1
  565. codex/static_root/assets/relation-chips-BJETO4cu.5cc9f906ae86.js.br +0 -0
  566. codex/static_root/assets/relation-chips-BJETO4cu.5cc9f906ae86.js.gz +0 -0
  567. codex/static_root/assets/relation-chips-BJETO4cu.js +0 -1
  568. codex/static_root/assets/relation-chips-BJETO4cu.js.br +0 -0
  569. codex/static_root/assets/relation-chips-BJETO4cu.js.gz +0 -0
  570. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css +0 -1
  571. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.br +0 -0
  572. codex/static_root/assets/relation-chips-eQkZvJcT.6b52d3f66aed.css.gz +0 -0
  573. codex/static_root/assets/relation-chips-eQkZvJcT.css +0 -1
  574. codex/static_root/assets/relation-chips-eQkZvJcT.css.br +0 -0
  575. codex/static_root/assets/relation-chips-eQkZvJcT.css.gz +0 -0
  576. codex/static_root/assets/settings-drawer-DGxdcvk4.30900a8bc3ff.js +0 -2
  577. codex/static_root/assets/settings-drawer-DGxdcvk4.30900a8bc3ff.js.br +0 -0
  578. codex/static_root/assets/settings-drawer-DGxdcvk4.30900a8bc3ff.js.gz +0 -0
  579. codex/static_root/assets/settings-drawer-DGxdcvk4.js +0 -2
  580. codex/static_root/assets/settings-drawer-DGxdcvk4.js.br +0 -0
  581. codex/static_root/assets/settings-drawer-DGxdcvk4.js.gz +0 -0
  582. codex/static_root/assets/settings-drawer-WyG6HLH-.css +0 -1
  583. codex/static_root/assets/settings-drawer-WyG6HLH-.css.br +0 -0
  584. codex/static_root/assets/settings-drawer-WyG6HLH-.css.gz +0 -0
  585. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css +0 -1
  586. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.br +0 -0
  587. codex/static_root/assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css.gz +0 -0
  588. codex/static_root/assets/ssrBoot-CAsgsyDf.726bc1a727b7.js.br +0 -0
  589. codex/static_root/assets/ssrBoot-CAsgsyDf.726bc1a727b7.js.gz +0 -0
  590. codex/static_root/assets/ssrBoot-CAsgsyDf.js.br +0 -0
  591. codex/static_root/assets/ssrBoot-CAsgsyDf.js.gz +0 -0
  592. codex/static_root/assets/stats-tab-B2rq8Yvl.3d1cb4751160.js.br +0 -0
  593. codex/static_root/assets/stats-tab-B2rq8Yvl.3d1cb4751160.js.gz +0 -0
  594. codex/static_root/assets/stats-tab-B2rq8Yvl.js.br +0 -0
  595. codex/static_root/assets/stats-tab-B2rq8Yvl.js.gz +0 -0
  596. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.br +0 -2
  597. codex/static_root/assets/stats-tab-B6L711cO.b6a42655cd70.css.gz +0 -0
  598. codex/static_root/assets/stats-tab-B6L711cO.css.br +0 -2
  599. codex/static_root/assets/stats-tab-B6L711cO.css.gz +0 -0
  600. codex/static_root/assets/task-tab-DL6WROkd.6c75d2f501ad.js.br +0 -0
  601. codex/static_root/assets/task-tab-DL6WROkd.6c75d2f501ad.js.gz +0 -0
  602. codex/static_root/assets/task-tab-DL6WROkd.js.br +0 -0
  603. codex/static_root/assets/task-tab-DL6WROkd.js.gz +0 -0
  604. codex/static_root/assets/unauthorized-CGmdx8H3.88f8cccac020.js +0 -1
  605. codex/static_root/assets/unauthorized-CGmdx8H3.88f8cccac020.js.br +0 -0
  606. codex/static_root/assets/unauthorized-CGmdx8H3.88f8cccac020.js.gz +0 -0
  607. codex/static_root/assets/unauthorized-CGmdx8H3.js +0 -1
  608. codex/static_root/assets/unauthorized-CGmdx8H3.js.br +0 -0
  609. codex/static_root/assets/unauthorized-CGmdx8H3.js.gz +0 -0
  610. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css +0 -1
  611. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.br +0 -0
  612. codex/static_root/assets/unauthorized-CtkV01lw.8668ffe7b306.css.gz +0 -0
  613. codex/static_root/assets/unauthorized-CtkV01lw.css +0 -1
  614. codex/static_root/assets/unauthorized-CtkV01lw.css.br +0 -0
  615. codex/static_root/assets/unauthorized-CtkV01lw.css.gz +0 -0
  616. codex/static_root/assets/user-tab-pnWYdoCh.b8b1c35dc74b.js.br +0 -0
  617. codex/static_root/assets/user-tab-pnWYdoCh.b8b1c35dc74b.js.gz +0 -0
  618. codex/static_root/assets/user-tab-pnWYdoCh.js.br +0 -0
  619. codex/static_root/assets/user-tab-pnWYdoCh.js.gz +0 -0
  620. codex/static_root/manifest.b023317c84d2.json +0 -757
  621. codex/static_root/manifest.b023317c84d2.json.br +0 -0
  622. codex/static_root/manifest.b023317c84d2.json.gz +0 -0
  623. {codex-1.7.11.dist-info → codex-1.7.12.dist-info}/LICENSE +0 -0
  624. {codex-1.7.11.dist-info → codex-1.7.12.dist-info}/entry_points.txt +0 -0
Binary file
Binary file
@@ -1 +1 @@
1
- {"paths": {"rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/reader-B2vknx-p.js": "assets/reader-B2vknx-p.b97c9147c346.js", "assets/VSelectionControl-DR3WB2kF.js": "assets/VSelectionControl-DR3WB2kF.8e2b62af4420.js", "assets/unauthorized-CGmdx8H3.js": "assets/unauthorized-CGmdx8H3.88f8cccac020.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/admin-i6V__Ibr.js": "assets/admin-i6V__Ibr.022e55cde6a4.js", "assets/index-Ciy2g1_l.js": "assets/index-Ciy2g1_l.a4d7e7a1851a.js", "assets/user-tab-pnWYdoCh.js": "assets/user-tab-pnWYdoCh.b8b1c35dc74b.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/VDialog-DYkXmPin.css": "assets/VDialog-DYkXmPin.3991696c6a81.css", "assets/group-tab-CqVQHStZ.js": "assets/group-tab-CqVQHStZ.4c72ec7c5179.js", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/pagination-toolbar-CzT9Hc3f.css": "assets/pagination-toolbar-CzT9Hc3f.487e647604e2.css", "assets/VSelectionControl-DtEh26JD.css": "assets/VSelectionControl-DtEh26JD.eec621947209.css", "assets/VCheckbox-BWg23XH7.js": "assets/VCheckbox-BWg23XH7.1d0de86f89e8.js", "assets/main-Bh4TRBe6.js": "assets/main-Bh4TRBe6.eabe3bd7c355.js", "assets/VWindowItem-DDjwD_H9.js": "assets/VWindowItem-DDjwD_H9.712a45940238.js", "assets/VRadioGroup-D-95qXAG.js": "assets/VRadioGroup-D-95qXAG.a1e32c668c7b.js", "assets/VForm-dmDeV5_M.js": "assets/VForm-dmDeV5_M.d487bb4a6a43.js", "assets/VCombobox-BQHELb_o.css": "assets/VCombobox-BQHELb_o.9f25a34994e2.css", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/task-tab-DL6WROkd.js": "assets/task-tab-DL6WROkd.6c75d2f501ad.js", "assets/datetime-column-CYEe6t74.js": "assets/datetime-column-CYEe6t74.2500e9a7b4a4.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/group-tab-_vKWzoyd.css": "assets/group-tab-_vKWzoyd.948e907b1e6b.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/forwardRefs-Dyi06MPF.css": "assets/forwardRefs-Dyi06MPF.601ab1fd99b1.css", "assets/http-error-D9X2r_ts.js": "assets/http-error-D9X2r_ts.71a1241440db.js", "assets/VDialog-OthWhLDZ.js": "assets/VDialog-OthWhLDZ.deedc659cbb7.js", "assets/pager-full-pdf-BJ2ugo4Y.js": "assets/pager-full-pdf-BJ2ugo4Y.fb70d1a2caab.js", "assets/ssrBoot-CAsgsyDf.js": "assets/ssrBoot-CAsgsyDf.726bc1a727b7.js", "assets/relation-chips-eQkZvJcT.css": "assets/relation-chips-eQkZvJcT.6b52d3f66aed.css", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/admin-DD2SkqRx.js": "assets/admin-DD2SkqRx.039722adfae5.js", "assets/unauthorized-CtkV01lw.css": "assets/unauthorized-CtkV01lw.8668ffe7b306.css", "assets/VTable-DdAIbK7T.js": "assets/VTable-DdAIbK7T.297df0a81277.js", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/browser-Bf8JG2CE.css": "assets/browser-Bf8JG2CE.3af978c1f766.css", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/index-BHXJTQ4V.css": "assets/index-BHXJTQ4V.523d7b3d350f.css", "assets/admin-menu-B4SzsUdK.js": "assets/admin-menu-B4SzsUdK.6639a1cbf4e7.js", "assets/stats-tab-B2rq8Yvl.js": "assets/stats-tab-B2rq8Yvl.3d1cb4751160.js", "assets/VCombobox-x6zK3RJ3.js": "assets/VCombobox-x6zK3RJ3.c7241fcc5a64.js", "assets/pagination-toolbar-BwTjydSq.js": "assets/pagination-toolbar-BwTjydSq.3086700f965d.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/main-K8cER0IH.css": "assets/main-K8cER0IH.d529e8b3f52a.css", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/flag-tab-ElQxMWbZ.js": "assets/flag-tab-ElQxMWbZ.e5ba707bac09.js", "assets/change-password-dialog-By3fj_TQ.js": "assets/change-password-dialog-By3fj_TQ.c5eac945e204.js", "assets/confirm-dialog-dLx7MoUh.js": "assets/confirm-dialog-dLx7MoUh.06fae90da0ac.js", "assets/admin-settings-button-progress-DhAZCqmL.js": "assets/admin-settings-button-progress-DhAZCqmL.04743416c2a4.js", "assets/settings-drawer-WyG6HLH-.css": "assets/settings-drawer-WyG6HLH-.fe251f6d0a75.css", "assets/filter-CX5R_mAN.js": "assets/filter-CX5R_mAN.0fd3b1a14779.js", "assets/admin-C3iCIUnm.css": "assets/admin-C3iCIUnm.06cb213f624d.css", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/reader-DdWNjEED.css": "assets/reader-DdWNjEED.97c15f661faf.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/settings-drawer-DGxdcvk4.js": "assets/settings-drawer-DGxdcvk4.30900a8bc3ff.js", "assets/stats-tab-B6L711cO.css": "assets/stats-tab-B6L711cO.b6a42655cd70.css", "assets/VCheckboxBtn-wiuE0DJ7.js": "assets/VCheckboxBtn-wiuE0DJ7.7bf28584c99f.js", "assets/relation-chips-BJETO4cu.js": "assets/relation-chips-BJETO4cu.5cc9f906ae86.js", "assets/forwardRefs-DlsL_f4M.js": "assets/forwardRefs-DlsL_f4M.662d81eac923.js", "assets/browser-BJ95cpa4.js": "assets/browser-BJ95cpa4.e30f8b92b0c7.js", "assets/VSelect-CQoVHUk_.js": "assets/VSelect-CQoVHUk_.b126cfd240df.js", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/VDivider-JdO15t-G.js": "assets/VDivider-JdO15t-G.37359224a349.js", "assets/VSelect-CP_CVb8s.css": "assets/VSelect-CP_CVb8s.6309f7bf17bb.css", "assets/pdf-doc-cr8rSW0K.js": "assets/pdf-doc-cr8rSW0K.42089de27088.js", "assets/VExpansionPanels-vIBE1NDV.js": "assets/VExpansionPanels-vIBE1NDV.6a3323984fb8.js", "assets/library-tab-gTOFQ_iR.js": "assets/library-tab-gTOFQ_iR.43484dac2129.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.b023317c84d2.json"}, "version": "1.1", "hash": "0930026a4b3d"}
1
+ {"paths": {"rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.e630f8f4990e.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.18a5ba8a1bd8.js", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.f17d4516b026.css", "rest_framework/css/bootstrap.min.css.map": "rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.ee4ee6acf9eb.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap-theme.min.css.map": "rest_framework/css/bootstrap-theme.min.css.51806092cc05.map", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.455080a7b2ce.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.4e1cdcb7acab.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/load-ajax-form.js": "rest_framework/js/load-ajax-form.8cdb3a9f3466.js", "rest_framework/js/jquery-3.7.1.min.js": "rest_framework/js/jquery-3.7.1.min.2c872dbe60f4.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "img/logo-maskable-180.webp": "img/logo-maskable-180.c58d966aa64e.webp", "img/imprint.svg": "img/imprint.7c2adebb76d6.svg", "img/publisher.svg": "img/publisher.82d378fcd601.svg", "img/missing-cover.svg": "img/missing-cover.ddb038cc2c56.svg", "img/series.svg": "img/series.ec8a889b8f95.svg", "img/volume.svg": "img/volume.814e4c79461a.svg", "img/missing-cover-165.webp": "img/missing-cover-165.0743171f2148.webp", "img/logo-maskable.svg": "img/logo-maskable.8f7de7f1c6a8.svg", "img/story-arc.svg": "img/story-arc.ca10014355ef.svg", "img/logo.svg": "img/logo.0f5344a028ca.svg", "img/logo-32.webp": "img/logo-32.5688944495bf.webp", "img/folder.svg": "img/folder.f28936a3701d.svg", "pwa/offline.html": "pwa/offline.7bfaf9f94bf9.html", "assets/copy-to-clipboard-DoUvDJVx.js": "assets/copy-to-clipboard-DoUvDJVx.bec27f144aca.js", "assets/pdf-doc-DxqOo2k2.css": "assets/pdf-doc-DxqOo2k2.42496ffbf35b.css", "assets/group-tab-DK0pQx_6.js": "assets/group-tab-DK0pQx_6.e02dab76e8e6.js", "assets/flag-tab-kMgSs3vx.js": "assets/flag-tab-kMgSs3vx.7ca3ec2db15e.js", "assets/forwardRefs-BxFNqo8E.js": "assets/forwardRefs-BxFNqo8E.00b94d8b82bf.js", "assets/VCombobox-Da-CC3-D.js": "assets/VCombobox-Da-CC3-D.7ce605203632.js", "assets/VTable-DbFt9lJE.js": "assets/VTable-DbFt9lJE.9ef6aa0ef98b.js", "assets/materialdesignicons-webfont-Dp5v-WZN.woff2": "assets/materialdesignicons-webfont-Dp5v-WZN.1d7bcee1b302.woff2", "assets/pagination-toolbar-DkYjhdVb.css": "assets/pagination-toolbar-DkYjhdVb.d431a5b140aa.css", "assets/forwardRefs-BhPKpkYY.css": "assets/forwardRefs-BhPKpkYY.1032af9ac8fd.css", "assets/VForm-DxBt30-N.css": "assets/VForm-DxBt30-N.138c0b89b6fc.css", "assets/group-tab-Bi681uR0.css": "assets/group-tab-Bi681uR0.3246ac0f7cec.css", "assets/VDialog-CoOMSEbM.js": "assets/VDialog-CoOMSEbM.ef9258719fe6.js", "assets/http-error-CODU7jcH.css": "assets/http-error-CODU7jcH.8c13689ae574.css", "assets/ssrBoot-B73_e82Z.js": "assets/ssrBoot-B73_e82Z.3d5063c17c68.js", "assets/task-tab-CW4DQ3KN.css": "assets/task-tab-CW4DQ3KN.81812f9208e5.css", "assets/datetime-column-BavtvLnf.css": "assets/datetime-column-BavtvLnf.1f3bf499e063.css", "assets/change-password-dialog-DL8UMjmX.css": "assets/change-password-dialog-DL8UMjmX.526f97e577e7.css", "assets/materialdesignicons-webfont-B7mPwVP_.ttf": "assets/materialdesignicons-webfont-B7mPwVP_.6e435534bd35.ttf", "assets/VSelect-BpkoCPsm.js": "assets/VSelect-BpkoCPsm.b9086059c2ef.js", "assets/VForm-DXrmSq46.js": "assets/VForm-DXrmSq46.940c782abacb.js", "assets/index-Czf-fUM7.css": "assets/index-Czf-fUM7.50a7466d956f.css", "assets/admin-BNNYZVYA.css": "assets/admin-BNNYZVYA.4628d2f169aa.css", "assets/VSelectionControl-DvYb3Pi4.js": "assets/VSelectionControl-DvYb3Pi4.39440575ef06.js", "assets/reader-CgmGRxud.js": "assets/reader-CgmGRxud.dd7fceeb36e4.js", "assets/VCheckbox-DtuP7Cwl.js": "assets/VCheckbox-DtuP7Cwl.38fc4eb148cb.js", "assets/unauthorized-DeuhBNVr.css": "assets/unauthorized-DeuhBNVr.6261a283874e.css", "assets/VRadioGroup-DgtijQjG.js": "assets/VRadioGroup-DgtijQjG.a3093b0a1608.js", "assets/unauthorized-CvdCW-Cq.js": "assets/unauthorized-CvdCW-Cq.a7bd69980089.js", "assets/pager-full-pdf-CcORwqD4.js": "assets/pager-full-pdf-CcORwqD4.78c861366624.js", "assets/VRadioGroup-Cp9mZ7cb.css": "assets/VRadioGroup-Cp9mZ7cb.8e3741381961.css", "assets/confirm-dialog-BI5kQLy_.css": "assets/confirm-dialog-BI5kQLy_.1b5309ad95ec.css", "assets/library-tab-DLpvMqPW.css": "assets/library-tab-DLpvMqPW.2989f610950b.css", "assets/VDivider-DU47sRrT.css": "assets/VDivider-DU47sRrT.3d2e17799e5c.css", "assets/user-tab-77Bjv-sy.js": "assets/user-tab-77Bjv-sy.994ac66245a1.js", "assets/admin-settings-button-progress-XVi7SeHr.css": "assets/admin-settings-button-progress-XVi7SeHr.435dc945daf1.css", "assets/admin-settings-button-progress-wIXv-9g2.js": "assets/admin-settings-button-progress-wIXv-9g2.33b5b24000b2.js", "assets/VTable-BnxSZ_W5.css": "assets/VTable-BnxSZ_W5.c36f0a6a30cf.css", "assets/VExpansionPanels-BvZsXmp0.js": "assets/VExpansionPanels-BvZsXmp0.288d3ac96c36.js", "assets/VSelectionControl-RqBzwjYi.css": "assets/VSelectionControl-RqBzwjYi.ee7425525e63.css", "assets/pdf-doc-HpDB0I3q.js": "assets/pdf-doc-HpDB0I3q.a991cdc377eb.js", "assets/main-JUy8mnXG.js": "assets/main-JUy8mnXG.d8a52b6ef508.js", "assets/admin--bDFN8Oq.js": "assets/admin--bDFN8Oq.a4abe921cf7c.js", "assets/admin-menu-CKlcsy9S.css": "assets/admin-menu-CKlcsy9S.41b2cf82b873.css", "assets/VDivider-BXrVdmrm.js": "assets/VDivider-BXrVdmrm.94f80a82fabf.js", "assets/flag-tab-CESc_7Pq.css": "assets/flag-tab-CESc_7Pq.2260edfa4c38.css", "assets/change-password-dialog-DOioR_QK.js": "assets/change-password-dialog-DOioR_QK.75126226aeee.js", "assets/VExpansionPanels-RsCANmDP.css": "assets/VExpansionPanels-RsCANmDP.5b17872981df.css", "assets/http-error-D4kgjRm6.js": "assets/http-error-D4kgjRm6.71e8ec284567.js", "assets/stats-tab-CGY8r-es.css": "assets/stats-tab-CGY8r-es.b06c55bdaeaa.css", "assets/library-tab-MhD2T2Fw.js": "assets/library-tab-MhD2T2Fw.052fe1d43941.js", "assets/VCombobox-Ckm4HgDu.css": "assets/VCombobox-Ckm4HgDu.ece2fa32eddd.css", "assets/VSelect-CBNrI-XP.css": "assets/VSelect-CBNrI-XP.f03b50289345.css", "assets/settings-drawer-Cz7dC3Ew.css": "assets/settings-drawer-Cz7dC3Ew.c9ed8ca4d859.css", "assets/VCheckboxBtn-D8jQ_2In.js": "assets/VCheckboxBtn-D8jQ_2In.7c4ec3e3d71a.js", "assets/VWindowItem-rXg83yw2.js": "assets/VWindowItem-rXg83yw2.0fd72e50001d.js", "assets/filter-D-aPctKp.js": "assets/filter-D-aPctKp.c9b14ffd360c.js", "assets/VWindowItem-CWBhiE_Y.css": "assets/VWindowItem-CWBhiE_Y.f7fb19752bf3.css", "assets/VCheckbox-CvH8ekHL.css": "assets/VCheckbox-CvH8ekHL.016ed8d222c4.css", "assets/pagination-toolbar-Cufj0Rqv.js": "assets/pagination-toolbar-Cufj0Rqv.3f3244ad0590.js", "assets/task-tab-DDKv2JN0.js": "assets/task-tab-DDKv2JN0.ea54c5cf8e0f.js", "assets/admin-menu-DEQXJH4i.js": "assets/admin-menu-DEQXJH4i.bac02d0bea36.js", "assets/confirm-dialog-BRUkbajJ.js": "assets/confirm-dialog-BRUkbajJ.9670ca0df005.js", "assets/settings-drawer-p6ZjyJ07.js": "assets/settings-drawer-p6ZjyJ07.128e2c761104.js", "assets/relation-chips-CV_iMj1X.js": "assets/relation-chips-CV_iMj1X.de28053775a6.js", "assets/reader-BIqif2zL.css": "assets/reader-BIqif2zL.755da5eee67d.css", "assets/relation-chips-D7i-g7Zv.css": "assets/relation-chips-D7i-g7Zv.57d1814a9e7a.css", "assets/index-D3gnYqT3.js": "assets/index-D3gnYqT3.c326544f2853.js", "assets/datetime-column-CdYfgPon.js": "assets/datetime-column-CdYfgPon.662194dbed49.js", "assets/VDialog-Cj6z437E.css": "assets/VDialog-Cj6z437E.cf3163940528.css", "assets/browser-ClPcbrsf.css": "assets/browser-ClPcbrsf.c8620affa34d.css", "assets/materialdesignicons-webfont-PXm3-2wK.woff": "assets/materialdesignicons-webfont-PXm3-2wK.026b7ac9c43c.woff", "assets/browser-Bu37CzsR.js": "assets/browser-Bu37CzsR.483b0af62dd4.js", "assets/materialdesignicons-webfont-CSr8KVlo.eot": "assets/materialdesignicons-webfont-CSr8KVlo.8ced95a05e3c.eot", "assets/admin-BpE7-fB4.js": "assets/admin-BpE7-fB4.8c4508dad617.js", "assets/main-Of3aYkZ7.css": "assets/main-Of3aYkZ7.91c75c4fbaa6.css", "assets/stats-tab-Kt45gqtN.js": "assets/stats-tab-Kt45gqtN.858a124412d0.js", "robots.txt": "robots.b6216d61c03e.txt", "manifest.json": "manifest.800f1750bf03.json"}, "version": "1.1", "hash": "8453836e75e7"}
@@ -51,5 +51,5 @@ class BookmarkView(BookmarkUpdate, BookmarkAuthMixin, BrowserFilterView):
51
51
  auth_filter = self.get_bookmark_auth_filter()
52
52
  comic_qs = self._get_comic_query()
53
53
 
54
- self.update_bookmarks(auth_filter, comic_qs, updates, LOG)
54
+ self.update_bookmarks(auth_filter, comic_qs, updates)
55
55
  return Response()
codex/views/download.py CHANGED
@@ -25,6 +25,7 @@ class DownloadView(AuthFilterAPIView):
25
25
  group_acl_filter = self.get_group_acl_filter(Comic, self.request.user)
26
26
  comic = (
27
27
  Comic.objects.filter(group_acl_filter)
28
+ .distinct()
28
29
  .only("path", "file_type")
29
30
  .get(pk=pk)
30
31
  )
codex/views/frontend.py CHANGED
@@ -8,10 +8,11 @@ from rest_framework.response import Response
8
8
 
9
9
  from codex.models.admin import AdminFlag
10
10
  from codex.serializers.route import RouteSerializer
11
+ from codex.views.mixins import UserActiveViewMixin
11
12
  from codex.views.session import SessionView
12
13
 
13
14
 
14
- class IndexView(SessionView):
15
+ class IndexView(SessionView, UserActiveViewMixin):
15
16
  """The main app."""
16
17
 
17
18
  SESSION_KEY = SessionView.BROWSER_SESSION_KEY
@@ -40,4 +41,5 @@ class IndexView(SessionView):
40
41
  "last_route": self._get_last_route(),
41
42
  "title": self._get_title(),
42
43
  }
44
+ self.mark_user_active()
43
45
  return Response(extra_context)
codex/views/mixins.py CHANGED
@@ -1,7 +1,10 @@
1
1
  """Cross view annotation methods."""
2
2
 
3
3
  from django.db.models.expressions import F
4
+ from rest_framework.views import APIView
4
5
 
6
+ from codex.librarian.bookmark.tasks import UserActiveTask
7
+ from codex.librarian.mp_queue import LIBRARIAN_QUEUE
5
8
  from codex.logger.logger import get_logger
6
9
  from codex.models.comic import Comic, Imprint, Volume
7
10
  from codex.views.browser.filters.filter import BrowserFilterView
@@ -75,3 +78,13 @@ class SharedAnnotationsMixin(BrowserFilterView):
75
78
  elif qs.model is Imprint:
76
79
  group_names["publisher_name"] = F("publisher__name")
77
80
  return qs.annotate(**group_names)
81
+
82
+
83
+ class UserActiveViewMixin(APIView):
84
+ """View that records user activity."""
85
+
86
+ def mark_user_active(self):
87
+ """Get the app index page."""
88
+ if self.request.user and self.request.user.pk:
89
+ task = UserActiveTask(pk=self.request.user.pk)
90
+ LIBRARIAN_QUEUE.put(task)
@@ -15,6 +15,7 @@ from codex.serializers.opds.v1 import (
15
15
  )
16
16
  from codex.settings.settings import FALSY
17
17
  from codex.views.const import MAX_OBJ_PER_PAGE
18
+ from codex.views.mixins import UserActiveViewMixin
18
19
  from codex.views.opds.auth import OPDSTemplateView
19
20
  from codex.views.opds.const import BLANK_TITLE
20
21
  from codex.views.opds.v1.entry.data import OPDS1EntryData
@@ -39,7 +40,7 @@ class OpdsNs:
39
40
  ACQUISITION = "http://opds-spec.org/2010/acquisition"
40
41
 
41
42
 
42
- class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView):
43
+ class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView, UserActiveViewMixin):
43
44
  """OPDS 1 Feed."""
44
45
 
45
46
  template_name = "opds_v1/index.xml"
@@ -168,4 +169,5 @@ class OPDS1FeedView(OPDS1LinksView, OPDSTemplateView):
168
169
  def get(self, *_args, **_kwargs):
169
170
  """Get the feed."""
170
171
  serializer = self.get_serializer(self)
172
+ self.mark_user_active()
171
173
  return Response(serializer.data, content_type=self.content_type)
@@ -10,6 +10,7 @@ from codex.models import AdminFlag
10
10
  from codex.serializers.browser.settings import OPDSSettingsSerializer
11
11
  from codex.serializers.opds.v2.feed import OPDS2FeedSerializer
12
12
  from codex.views.const import MAX_OBJ_PER_PAGE
13
+ from codex.views.mixins import UserActiveViewMixin
13
14
  from codex.views.opds.auth import OPDSAuthMixin
14
15
  from codex.views.opds.const import BLANK_TITLE
15
16
  from codex.views.opds.v2.const import (
@@ -27,7 +28,7 @@ from codex.views.opds.v2.publications import OPDS2PublicationView
27
28
  LOG = get_logger(__name__)
28
29
 
29
30
 
30
- class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView):
31
+ class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView, UserActiveViewMixin):
31
32
  """OPDS 2.0 Feed."""
32
33
 
33
34
  DEFAULT_ROUTE = MappingProxyType(
@@ -216,4 +217,5 @@ class OPDS2FeedView(OPDSAuthMixin, OPDS2PublicationView):
216
217
  """Get the feed."""
217
218
  obj = self.get_object()
218
219
  serializer = self.get_serializer(obj)
220
+ self.mark_user_active()
219
221
  return Response(serializer.data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: codex
3
- Version: 1.7.11
3
+ Version: 1.7.12
4
4
  Summary: A comic archive web server.
5
5
  License: GPL-3.0-only
6
6
  Keywords: comic,cbz,cbr,cbt,pdf
@@ -146,7 +146,7 @@ before installing Codex.
146
146
  ...and Ubuntu, Mint, MX, Window Subsystem for Linux, and others.
147
147
 
148
148
  ```sh
149
- apt install build-essential libimagequant0 libjpeg-turbo8 libopenjp2-7 libssl libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip mupdf sqlite3 unrar zlib1g
149
+ apt install build-essential libimagequant0 libjpeg-turbo8 libopenjp2-7 libssl libyaml-0-2 libtiff6 libwebp7 python3-dev python3-pip sqlite3 unrar zlib1g
150
150
  ```
151
151
 
152
152
  Versions of packages like libjpeg, libssl, libtiff may differ between flavors
@@ -161,7 +161,7 @@ apt-cache search libjpeg-turbo
161
161
  ###### <a href="alpine">Alpine</a> Dependencies
162
162
 
163
163
  ```sh
164
- apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp mupdf openssl-dev sqlite yaml-dev zlib-dev
164
+ apk add bsd-compat-headers build-base jpeg-dev libffi-dev libwebp openssl-dev sqlite yaml-dev zlib-dev
165
165
  ```
166
166
 
167
167
  ##### Install unrar Runtime Dependency on non-debian Linux
@@ -188,7 +188,7 @@ natively on the Windows Subsystem for Linux.
188
188
  Installation instructions are in the <a href="/WINDOWS.md">Native Windows
189
189
  Dependencies Installation Document</a>.
190
190
 
191
- #### Installing Codex on ARM (AARCH64) with Python 3.13
191
+ #### Installing Codex on Linux on ARM (AARCH64) with Python 3.13
192
192
 
193
193
  Pymupdf has no pre-built wheels for AARCH64 so pip must build it and the build
194
194
  fails on Python 3.13 without this environment variable set:
@@ -197,6 +197,9 @@ fails on Python 3.13 without this environment variable set:
197
197
  PYMUPDF_SETUP_PY_LIMITED_API=0 pip install codex
198
198
  ```
199
199
 
200
+ You will also have to have the `build-essential` and `python3-dev` or equivalent
201
+ packages installed on on your Linux.
202
+
200
203
  #### <a href="#run">Run</a> Codex Natively
201
204
 
202
205
  Once you have installed codex, the codex binary should be on your path. To start