aa-bb 3.2.2__tar.gz → 3.2.3__tar.gz

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.
Files changed (182) hide show
  1. {aa_bb-3.2.2 → aa_bb-3.2.3}/PKG-INFO +2 -2
  2. {aa_bb-3.2.2 → aa_bb-3.2.3}/README.md +1 -1
  3. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/__init__.py +1 -1
  4. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/admin.py +2 -2
  5. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/app_settings.py +8 -6
  6. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/auth_hooks.py +8 -5
  7. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/clone_state.py +2 -2
  8. aa_bb-3.2.3/aa_bb/checks/coalition_blacklist.py +9 -0
  9. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/corp_blacklist.py +3 -3
  10. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/hostile_assets.py +3 -7
  11. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/urls.py +2 -2
  12. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/urls_cb.py +1 -1
  13. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/views.py +5 -4
  14. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/views_paps.py +4 -0
  15. aa_bb-3.2.2/aa_bb/checks/coalition_blacklist.py +0 -42
  16. {aa_bb-3.2.2 → aa_bb-3.2.3}/.gitignore +0 -0
  17. {aa_bb-3.2.2 → aa_bb-3.2.3}/LICENSE +0 -0
  18. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/apps.py +0 -0
  19. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/celery.py +0 -0
  20. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/__init__.py +0 -0
  21. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/alliance_blacklist.py +0 -0
  22. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/alpha_skills.json +0 -0
  23. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/awox.py +0 -0
  24. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/corp_changes.py +0 -0
  25. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/cyno.py +0 -0
  26. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/hostile_clones.py +0 -0
  27. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/roles_and_tokens.py +0 -0
  28. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/skills.json +0 -0
  29. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/skills.py +0 -0
  30. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/sus_contacts.py +0 -0
  31. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/sus_contracts.py +0 -0
  32. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/sus_mails.py +0 -0
  33. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks/sus_trans.py +0 -0
  34. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks_cb/__init__.py +0 -0
  35. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks_cb/hostile_assets.py +0 -0
  36. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks_cb/sus_contracts.py +0 -0
  37. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/checks_cb/sus_trans.py +0 -0
  38. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/esi_cache.py +0 -0
  39. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/esi_client.py +0 -0
  40. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/forms.py +0 -0
  41. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/locale/.gitkeep +0 -0
  42. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/management/__init__.py +0 -0
  43. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/management/commands/__init__.py +0 -0
  44. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/management/commands/manual_notif_test.py +0 -0
  45. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0001_initial.py +0 -0
  46. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0002_bigbrotherconfig_userstatus.py +0 -0
  47. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0003_alter_bigbrotherconfig_pingroleid.py +0 -0
  48. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0004_alter_bigbrotherconfig_is_active_and_more.py +0 -0
  49. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0005_alter_bigbrotherconfig_hostile_alliances.py +0 -0
  50. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0006_alter_bigbrotherconfig_pingroleid.py +0 -0
  51. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0007_alter_general_options.py +0 -0
  52. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0008_alliance_names_corporation_names.py +0 -0
  53. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0009_userstatus_sus_contacts_userstatus_sus_contracts_and_more.py +0 -0
  54. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0010_alter_userstatus_awox_kill_links_and_more.py +0 -0
  55. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0011_character_names.py +0 -0
  56. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0012_id_types.py +0 -0
  57. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0013_bigbrotherconfig_mail_keywords.py +0 -0
  58. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0014_processedcontract_processedmail_and_more.py +0 -0
  59. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0015_processedtransaction_sustransactionnote.py +0 -0
  60. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0016_warmprogress.py +0 -0
  61. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0017_entityinfocache.py +0 -0
  62. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0018_userstatus_cyno_userstatus_has_skills_and_more.py +0 -0
  63. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0019_bigbrotherconfig_whitelist_alliances_and_more.py +0 -0
  64. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0020_messages_bigbrotherconfig_are_daily_messages_active_and_more.py +0 -0
  65. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0021_alter_messages_id_alter_messages_text.py +0 -0
  66. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0022_messages_sent_in_cycle.py +0 -0
  67. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0023_optmessages1_optmessages2_optmessages3_optmessages4_and_more.py +0 -0
  68. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0024_bigbrotherconfig_dailyschedule_and_more.py +0 -0
  69. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0025_alter_messages_options_alter_optmessages1_options_and_more.py +0 -0
  70. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0026_alter_general_options_alter_bigbrotherconfig_id_and_more.py +0 -0
  71. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0027_alter_general_options_bigbrotherconfig_is_loa_active_and_more.py +0 -0
  72. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0028_alter_bigbrotherconfig_is_loa_active.py +0 -0
  73. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0029_leaverequest_main_character.py +0 -0
  74. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0030_alter_general_options.py +0 -0
  75. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0031_bigbrotherconfig_loa_max_logoff_days_and_more.py +0 -0
  76. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0032_alter_leaverequest_status.py +0 -0
  77. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0033_messagetype_bigbrotherconfig_pingroleid2_and_more.py +0 -0
  78. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0034_rename_last_updated_userstatus_updated.py +0 -0
  79. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0035_alter_userstatus_options.py +0 -0
  80. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0036_alter_general_options.py +0 -0
  81. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0037_corpstatus.py +0 -0
  82. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0038_bigbrotherconfig_ignored_corporations.py +0 -0
  83. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0039_alter_bigbrotherconfig_ignored_corporations.py +0 -0
  84. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0040_sovereigntymapcache_corporationinfocache_and_more.py +0 -0
  85. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0041_bigbrotherconfig_is_warmer_active.py +0 -0
  86. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0042_alter_general_options_and_more.py +0 -0
  87. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0043_bigbrotherconfig_bb_member_states_and_more.py +0 -0
  88. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0044_bigbrotherconfig_character_scopes_and_more.py +0 -0
  89. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0045_userstatus_sp_age_ratio_result.py +0 -0
  90. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0046_bigbrotherconfig_member_corporations.py +0 -0
  91. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0047_bigbrotherconfig_member_alliances.py +0 -0
  92. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0048_characteraccountstate.py +0 -0
  93. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0049_userstatus_clone_status.py +0 -0
  94. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0050_alter_general_options_and_more.py +0 -0
  95. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0051_monthlypapstats.py +0 -0
  96. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0052_papsconfig_delete_monthlypapstats.py +0 -0
  97. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0053_alter_papsconfig_corp_modifier_and_more.py +0 -0
  98. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0054_alter_general_options.py +0 -0
  99. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0055_papsconfig_group_paps_papsconfig_group_paps_modifier.py +0 -0
  100. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0056_alter_papsconfig_group_paps.py +0 -0
  101. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0057_papsconfig_excluded_groups_papsconfig_excluded_users_and_more.py +0 -0
  102. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0058_papsconfig_excluded_groups_get_paps_and_more.py +0 -0
  103. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0059_alter_papsconfig_excluded_groups_get_paps.py +0 -0
  104. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0060_papsconfig_cap_group_papsconfig_cap_group_paps_and_more.py +0 -0
  105. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0061_remove_papsconfig_cap_group_and_more.py +0 -0
  106. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0062_complianceticket.py +0 -0
  107. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0063_alter_complianceticket_user.py +0 -0
  108. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0064_alter_complianceticket_reason.py +0 -0
  109. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0065_alter_complianceticket_reason_and_more.py +0 -0
  110. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0066_tickettoolconfig_papcompliance.py +0 -0
  111. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0067_remove_tickettoolconfig_category_id_and_more.py +0 -0
  112. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0068_tickettoolconfig_category_id_and_more.py +0 -0
  113. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0069_tickettoolconfig_ticket_counter.py +0 -0
  114. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0070_remove_tickettoolconfig_role_id_and_more.py +0 -0
  115. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0071_tickettoolconfig_role_id.py +0 -0
  116. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0072_alter_complianceticket_reason.py +0 -0
  117. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0073_tickettoolconfig_starting_pap_compliance.py +0 -0
  118. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0074_alter_bigbrotherconfig_hostile_alliances.py +0 -0
  119. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0075_bbupdatestate_tickettoolconfig_afk_check_frequency_and_more.py +0 -0
  120. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0076_id_types_last_accessed_frequentcorpchangescache_and_more.py +0 -0
  121. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0077_complianceticket_ticket_id_and_more.py +0 -0
  122. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0078_tickettoolconfig_awox_monitor_enabled.py +0 -0
  123. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0079_helptext_guidance.py +0 -0
  124. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0080_bigbrotherconfig_dlc_flags.py +0 -0
  125. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0081_remove_papsconfig_imp_modifier_and_more.py +0 -0
  126. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0082_remove_bigbrotherconfig_token_and_more.py +0 -0
  127. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0083_alter_bigbrotherredditmessage_options_and_more.py +0 -0
  128. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0084_bigbrotherconfig_consider_all_structures_hostile_and_more.py +0 -0
  129. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0085_bigbrotherconfig_awox_notify_and_more.py +0 -0
  130. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0086_bigbrotherconfig_are_recurring_stats_active_and_more.py +0 -0
  131. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0087_bigbrotherconfig_dlc_are_recurring_stats_active.py +0 -0
  132. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0088_bigbrotherconfig_cyno_notify.py +0 -0
  133. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0089_bigbrotherconfig_asset_notify_and_more.py +0 -0
  134. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0090_alter_papsconfig_options_and_more.py +0 -0
  135. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0091_remove_bigbrotherconfig_dlc_are_recurring_stats_active_and_more.py +0 -0
  136. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/0092_userstatus_baseline_initialized.py +0 -0
  137. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/migrations/__init__.py +0 -0
  138. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/models.py +0 -0
  139. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/reddit.py +0 -0
  140. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/signals.py +0 -0
  141. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/static/aa_bb/.gitkeep +0 -0
  142. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks.py +0 -0
  143. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_bot.py +0 -0
  144. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_cb.py +0 -0
  145. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_ct.py +0 -0
  146. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_other.py +0 -0
  147. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_reddit.py +0 -0
  148. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tasks_tickets.py +0 -0
  149. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_bb/base.html +0 -0
  150. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_bb/disabled.html +0 -0
  151. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_bb/index.html +0 -0
  152. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_cb/base.html +0 -0
  153. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_cb/disabled.html +0 -0
  154. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/aa_cb/index.html +0 -0
  155. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/base.html +0 -0
  156. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/cards.html +0 -0
  157. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/faq.html +0 -0
  158. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/menu.html +0 -0
  159. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/modules.html +0 -0
  160. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/settings_bigbrother.html +0 -0
  161. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/settings_nav.html +0 -0
  162. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/settings_paps.html +0 -0
  163. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/faq/settings_tickets.html +0 -0
  164. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/_loa_subtabs.html +0 -0
  165. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/admin.html +0 -0
  166. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/base.html +0 -0
  167. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/disabled.html +0 -0
  168. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/index.html +0 -0
  169. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/menu.html +0 -0
  170. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/loa/request.html +0 -0
  171. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/paps/base.html +0 -0
  172. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/paps/disabled.html +0 -0
  173. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/paps/history.html +0 -0
  174. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/paps/index.html +0 -0
  175. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/templates/paps/menu.html +0 -0
  176. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tests/__init__.py +0 -0
  177. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/tests/test_example.py +0 -0
  178. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/urls_loa.py +0 -0
  179. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/urls_paps.py +0 -0
  180. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/views_cb.py +0 -0
  181. {aa_bb-3.2.2 → aa_bb-3.2.3}/aa_bb/views_faq.py +0 -0
  182. {aa_bb-3.2.2 → aa_bb-3.2.3}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aa_bb
3
- Version: 3.2.2
3
+ Version: 3.2.3
4
4
  Summary: BigBrother
5
5
  Project-URL: Changelog, https://github.com/BroodLK/aa_bb/blob/main/CHANGELOG.md
6
6
  Project-URL: Issue / Bug Reports, https://github.com/BroodLK/aa_bb/issues
@@ -98,7 +98,7 @@ After making sure to add the above prerequisite applications.
98
98
  source /home/allianceserver/venv/auth/bin/activate && cd /home/allianceserver/myauth/
99
99
  ```
100
100
  ```bash
101
- pip install aa-bb==3.2.1
101
+ pip install aa-bb==3.2.2
102
102
  ```
103
103
  ```bash
104
104
  vi myauth/settings/local.py
@@ -58,7 +58,7 @@ After making sure to add the above prerequisite applications.
58
58
  source /home/allianceserver/venv/auth/bin/activate && cd /home/allianceserver/myauth/
59
59
  ```
60
60
  ```bash
61
- pip install aa-bb==3.2.1
61
+ pip install aa-bb==3.2.2
62
62
  ```
63
63
  ```bash
64
64
  vi myauth/settings/local.py
@@ -1,4 +1,4 @@
1
1
  """Initialize the app"""
2
2
 
3
- __version__ = "3.2.2"
3
+ __version__ = "3.2.3"
4
4
  __title__ = "BigBrother"
@@ -424,11 +424,11 @@ def _filtered_get_app_list(request, app_label=None):
424
424
 
425
425
  filtered = []
426
426
  for app in app_list:
427
- # If AFAT itself has an admin section, drop it.
427
+ # Exclude AFAT's own admin section if present.
428
428
  if app.get("app_label") == "afat":
429
429
  continue
430
430
 
431
- # PAP models (in this project) show under aa_bb, so remove them there.
431
+ # PAP models (in this project) are under aa_bb, so remove them when AFAT is not active.
432
432
  if app.get("app_label") == "aa_bb":
433
433
  models = app.get("models", [])
434
434
  models = [m for m in models if m.get("object_name") not in _PAP_OBJECT_NAMES]
@@ -47,8 +47,8 @@ VERBOSE_WEBHOOK_LOGGING = True
47
47
 
48
48
  def esi_tenant_kwargs(datasource: str | None):
49
49
  """
50
- Translate the legacy datasource argument into the new X-Tenant header expected by
51
- the aiopenapi3-powered ESI client.
50
+ Translates the datasource argument into the X-Tenant header required by
51
+ the ESI client.
52
52
  """
53
53
  tenant = datasource or DATASOURCE
54
54
  return {"X_Tenant": tenant} if tenant else {}
@@ -192,7 +192,6 @@ def get_eve_entity_type(
192
192
  # 1. Cache lookup
193
193
  try:
194
194
  record = id_types.objects.get(pk=eve_id)
195
- # mark last access time without touching freshness timestamp
196
195
  try:
197
196
  record.last_accessed = timezone.now()
198
197
  record.save(update_fields=["last_accessed"])
@@ -329,7 +328,8 @@ def get_entity_info(entity_id: int, as_of: timezone.datetime) -> Dict:
329
328
  }
330
329
  Caches the result in the DB for 2 hours.
331
330
  """
332
- if entity_id is None: # Replace missing IDs with placeholder to avoid crashing downstream.
331
+ if entity_id is None:
332
+ # Default placeholder ID if input is missing.
333
333
  entity_id = 342545170
334
334
  errent = True
335
335
  else:
@@ -406,7 +406,8 @@ def get_entity_info(entity_id: int, as_of: timezone.datetime) -> Dict:
406
406
  continue
407
407
  raise
408
408
 
409
- if errent: # Flag placeholder lookups so downstream consumers know input was missing.
409
+ if errent:
410
+ # Indicate lookup error for missing ID.
410
411
  errmsg = "Error: entity id provided is None "
411
412
  info = {
412
413
  "name": errmsg,
@@ -1030,7 +1031,8 @@ def is_player_structure(location_id):
1030
1031
  return location_id >= 1_000_000_000_000
1031
1032
 
1032
1033
  def is_ship(type_id):
1033
- return False # Placeholder logic will be inline or enhanced if needed.
1034
+ """Checks if a type_id belongs to a ship."""
1035
+ return False
1034
1036
 
1035
1037
  def get_safe_entities():
1036
1038
  """
@@ -165,15 +165,18 @@ class PapsMenuItem(MenuItemHook):
165
165
  navactive=["paps:"],
166
166
  )
167
167
  def render(self, request):
168
- """Only show when users have permission."""
168
+ """Only show when users have permission and AFAT is active."""
169
+ if not afat_active():
170
+ return ""
169
171
  if request.user.has_perm("aa_bb.can_access_paps"): # Only show for PAP viewers.
170
172
  return super().render(request)
171
173
  return ""
172
174
 
173
- @hooks.register("menu_item_hook")
174
- def register_paps_menu():
175
- """Register the PAP stats sidebar entry."""
176
- return PapsMenuItem()
175
+ if afat_active():
176
+ @hooks.register("menu_item_hook")
177
+ def register_paps_menu():
178
+ """Register the PAP stats sidebar entry if AFAT is active."""
179
+ return PapsMenuItem()
177
180
 
178
181
  if afat_active():
179
182
  @hooks.register("url_hook")
@@ -84,7 +84,7 @@ def determine_character_state(user_id, save: bool = False):
84
84
  all_char_ids = get_user_characters(user_id) # iterates keys if dict
85
85
  result = {}
86
86
 
87
- # If corptools isn't available, mark unknown quickly
87
+ # If corptools is not available, default to unknown status.
88
88
  if CharacterAudit is None or Skill is None:
89
89
  for char_id in all_char_ids:
90
90
  db_record = char_db_records.get(char_id)
@@ -115,7 +115,7 @@ def determine_character_state(user_id, save: bool = False):
115
115
  for char_id in char_ids:
116
116
  db_record = char_db_records.get(char_id)
117
117
 
118
- # Reuse cached state unless it's been 24 hours since last
118
+ # Use cached state if it's within 24 hours and inside the update window.
119
119
  now = timezone.now()
120
120
  if db_record and db_record.last_checked_at and (now - db_record.last_checked_at) < MAX_CACHE_AGE and in_utc_update_window(now):
121
121
  result[char_id] = {
@@ -0,0 +1,9 @@
1
+ """
2
+ Helpers for constructing links against shared blacklist tools.
3
+ """
4
+
5
+ def generate_blacklist_links():
6
+ """
7
+ Returns an empty string. Placeholder for future coalition blacklist integration.
8
+ """
9
+ return ""
@@ -58,9 +58,9 @@ def get_corp_blacklist_html(
58
58
  "allianceauth-blacklist/tree/main'>install blacklist</a> first"
59
59
  )
60
60
 
61
- # Reverse the correct namespaced POST URL:
62
- action_url = reverse("BigBrother:add_blacklist")
63
- # Generate a real CSRF token:
61
+ # Determine the URL for the blacklist action:
62
+ action_url = reverse("aa_bb:add_blacklist")
63
+ # Generate CSRF token for the form:
64
64
  token = get_token(request)
65
65
 
66
66
  status_map = check_corp_bl(target_user_id)
@@ -68,13 +68,9 @@ def get_asset_locations(user_id: int) -> Dict[int, dict]:
68
68
  key = getattr(system_obj, "pk", None)
69
69
  sys_name = system_obj.name
70
70
  elif location_id:
71
- # Fallback if system object isn't available but we have a location ID
72
- # For now, assuming we only care if we can map to a system,
73
- # but to support "Unknown Location" groups properly we can use negative ID or similar if needed.
74
- # Current logic requires key to be set.
75
- # Use location_id as key if system unavailable?
76
- # But return type says Dict[int, dict] where int is system ID.
77
- # If we have no system, we can't check sovereignty easily.
71
+ # If the system ID is not available, we can't accurately check sovereignty
72
+ # or determine if the location is hostile based on system-level rules.
73
+ # We skip these records for now.
78
74
  pass
79
75
 
80
76
  if not key:
@@ -35,8 +35,8 @@ urlpatterns = [
35
35
  ), # Handle the Reddit OAuth callback and persist tokens.
36
36
  path("manual/faq/", views_faq.manual_faq, name="manual_faq"), # General FAQ/guide landing page.
37
37
 
38
- # Bulk loader (not used by paginated SUS_CONTR but retained)
39
- path("load_cards/", views.load_cards, name="load_cards"), # Legacy endpoint to generate all SUS cards at once.
38
+ # Bulk loader
39
+ path("load_cards/", views.load_cards, name="load_cards"), # Legacy endpoint.
40
40
 
41
41
  # Single card AJAX fetch (all cards except paging for SUS_CONTR)
42
42
  path("load_card/", views.load_card, name="load_card"), # Fetch one card’s HTML payload on-demand.
@@ -9,7 +9,7 @@ urlpatterns = [
9
9
  # Main index view
10
10
  path("", views.index, name="index"), # CorpBrother dashboard root.
11
11
 
12
- # Bulk loader (not used by paginated SUS_CONTR but retained)
12
+ # Bulk loader
13
13
  path("load_cards/", views.load_cards, name="load_cards"), # Legacy full-card refresh endpoint.
14
14
 
15
15
  # Single card AJAX fetch (all cards except paging for SUS_CONTR)
@@ -227,20 +227,21 @@ def warm_entity_cache_task(self, user_id):
227
227
  except WarmProgress.DoesNotExist:
228
228
  progress = None
229
229
 
230
- if progress and progress.total > 0: # Another warm job is in-flight for this pilot.
230
+ # Determine if an existing warm job is currently making progress.
231
+ if progress and progress.total > 0:
231
232
  first_current = progress.current
232
233
  logger.info(f"[{user_main}] detected in-progress run (current={first_current}); probing…")
233
234
  time.sleep(20)
234
235
 
235
- # re-fetch to see if it's moved
236
+ # Re-fetch progress record to see if current count has increased.
236
237
  try:
237
238
  progress = WarmProgress.objects.get(user_main=user_main)
238
239
  second_current = progress.current
239
240
  except WarmProgress.DoesNotExist:
240
241
  second_current = None
241
242
 
242
- # Now *abort* if there *was* progress; otherwise continue
243
- if second_current != first_current: # Existing job advanced, so bail out to avoid duplicate work.
243
+ # Abort if progress was detected; otherwise continue with the new task.
244
+ if second_current != first_current:
244
245
  logger.info(
245
246
  f"[{user_main}] progress advanced from {first_current} to {second_current}; aborting new task."
246
247
  )
@@ -167,6 +167,8 @@ def index(request):
167
167
  @permission_required("aa_bb.can_access_paps")
168
168
  def history(request):
169
169
  """Show previously generated PAP charts (if they exist)."""
170
+ if not afat_active():
171
+ return render(request, "paps/disabled.html")
170
172
  cfg = BigBrotherConfig.get_solo()
171
173
  if not cfg.is_paps_active: # Respect module toggle.
172
174
  return render(request, "paps/disabled.html")
@@ -197,6 +199,8 @@ def history(request):
197
199
  @permission_required("aa_bb.can_generate_paps")
198
200
  def generate_pap_chart(request):
199
201
  """Process the submitted PAP form and produce a stacked contribution chart."""
202
+ if not afat_active():
203
+ return render(request, "paps/disabled.html")
200
204
  month = int(request.POST.get("month"))
201
205
  year = int(request.POST.get("year"))
202
206
 
@@ -1,42 +0,0 @@
1
- """
2
- Helpers for constructing links against Imperium's shared blacklist tools.
3
- """
4
-
5
- from allianceauth.authentication.models import CharacterOwnership
6
- import urllib.parse
7
-
8
- # def generate_blacklist_links(user_id, base_url="https://gice.goonfleet.com/Blacklist", max_url_length=2000):
9
- # """
10
- # Batch character names into multiple links to avoid exceeding the
11
- # URL length limit enforced by the external blacklist service.
12
- # """
13
- # characters = CharacterOwnership.objects.filter(user__id=user_id)
14
- # names = [str(char.character) for char in characters]
15
- #
16
- # links = []
17
- # current_names = []
18
- #
19
- # for name in names:
20
- # test_list = current_names + [name]
21
- # query_string = urllib.parse.quote(",".join(test_list)) # URL-encode
22
- # url = f"{base_url}?q={query_string}"
23
- #
24
- # if len(url) >= max_url_length: # Push current batch if adding name would exceed service limit.
25
- # links.append(current_names)
26
- # current_names = [name]
27
- # else:
28
- # current_names = test_list
29
- #
30
- # if current_names: # Append final batch after loop.
31
- # links.append(current_names)
32
- #
33
- # formatted_links = []
34
- # for i, chunk in enumerate(links):
35
- # link_text = "Click here" if i == 0 else "and here"
36
- # query = urllib.parse.quote(",".join(chunk)) # URL-encode
37
- # formatted_links.append(f"<a href='{base_url}?q={query}'>{link_text}</a>")
38
- #
39
- # return formatted_links
40
-
41
- def generate_blacklist_links():
42
- return ""
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes