antipetros_discordbot

A Discord Bot for the Antistasi (ArmA 3) Community Discord Server


License
MIT
Install
pip install antipetros_discordbot==2.1.4

Documentation

Antipetros Discordbot

Anti-Petros Avatar

Placeholder Description for AntiPetros DiscordBot

if you want to suggest and feature or an idea for a new command

Use the command -->

@AntiPetros new_feature [YOUR SUGGESTION TEXT]

You can even attach images to the suggestion.

Installation

Via PyPi

Use the following command with pip:

pip install antipetros_discordbot==0.1.11

Features

Currently usable Cogs
Description
Soon
Commands
  • AVAILABLE_STAMPS

    • aliases: availablestamps, available-stamps, available.stamps
    • checks: in_allowed_channels, has_any_role

  • MAP_CHANGED

    • aliases: map.changed, map-changed, mapchanged
    • checks: allowed_channel_and_allowed_role
    • signature:
      <marker> <color>

  • MEMBER_AVATAR

    • aliases: memberavatar, member.avatar, member-avatar
    • checks: in_allowed_channels, has_any_role

  • STAMP_IMAGE

    • aliases: stampimage, antistasify, stamp-image, stamp.image
    • checks: in_allowed_channels, has_any_role
    • signature:
      [stamp=ASLOGO1] [first_pos=bottom] [second_pos=right] [factor]


Description
Soon
Commands
  • FLIP_COIN

    • aliases: flip, flip-coin, flip.coin, flipcoin
    • checks: allowed_channel_and_allowed_role

  • MAKE_FIGLET

    • aliases: makefiglet, make-figlet, make.figlet
    • checks: allowed_channel_and_allowed_role
    • signature:
      <text>

  • THE_DRAGON

    • aliases: the-dragon, the.dragon, thedragon
    • checks: allowed_channel_and_allowed_role

  • URBAN_DICTIONARY

    • checks: allowed_channel_and_allowed_role
    • signature:
      <term>


Description
Soon
Commands
  • AUTO_ACCEPT_SUGGESTIONS

    • aliases: auto.accept.suggestions, auto-accept-suggestions, autoacceptsuggestions
    • checks: dm_only

  • CLEAR_ALL_SUGGESTIONS

    • aliases: clearallsuggestions, clear.all.suggestions, clear-all-suggestions
    • checks: in_allowed_channels, has_any_role
    • signature:
      [sure=False]

  • GET_ALL_SUGGESTIONS

    • aliases: getallsuggestions, get-all-suggestions, get.all.suggestions
    • checks: in_allowed_channels, has_any_role
    • signature:
      [report_template=basic_report.html.jinja]

  • MARK_DISCUSSED

    • aliases: mark.discussed, mark-discussed, markdiscussed
    • checks: in_allowed_channels, has_any_role
    • signature:
      [suggestion_ids...]

  • REMOVE_ALL_USERDATA

    • aliases: remove.all.my.data, removeallmydata, remove-all-userdata, removealluserdata, remove-all-my-data, remove.all.userdata
    • checks: dm_only

  • REQUEST_MY_DATA

    • aliases: requestmydata, request-my-data, request.my.data
    • checks: dm_only

  • USER_DELETE_SUGGESTION

    • aliases: unsavesuggestion, user.delete.suggestion, unsave.suggestion, unsave-suggestion, user-delete-suggestion, userdeletesuggestion
    • checks: dm_only
    • signature:
      <suggestion_id>


Description
Soon
Commands
  • TRANSLATE

    + Translates text into multiple different languages.
    • checks: allowed_channel_and_allowed_role
    • signature:
      [to_language_id=english] <text_to_translate>


Dependencies

Currently only tested on Windows

Developed with Python Version 3.9.1

  • Jinja2<=2.11.2
  • googletrans<=4.0.0rc1
  • icecream<=2.0.0
  • aiohttp<=3.7.3
  • watchgod<=0.6
  • emoji<=1.1.0
  • discord_flags<=2.1.1
  • cryptography<=3.3.1
  • WeasyPrint<=52.2
  • fuzzywuzzy<=0.18.0
  • matplotlib<=3.3.3
  • psutil<=5.8.0
  • marshmallow<=3.10.0
  • arrow<=0.17.0
  • dateparser<=1.0.0
  • humanize<=3.2.0
  • pyfiglet<=0.8.post1
  • async_property<=0.2.1
  • click<=7.1.2
  • pytz<=2020.5
  • antistasi_template_checker<=0.1.1
  • discord<=1.0.1
  • gidappdata<=0.1.8
  • gidlogger<=0.1.7
  • Pillow<=8.1.0
  • python-dotenv<=0.15.0
  • udpy<=2.0.0

See also

License

MIT

Development

Todo

TODOS FROM CODE

todo __main__.py:

  • __main__.py line 43: create prompt for token, with save option

todo blacklist_warden.py:

  • blacklist_warden.py line 140: make embed

todo error_handler.py:

  • error_handler.py line 36: rebuild whole error handling system

  • error_handler.py line 37: make it so that creating the embed also sends it, with more optional args


todo admin_cog.py:

  • admin_cog.py line 37: get_logs command

  • admin_cog.py line 38: get_appdata_location command

  • admin_cog.py line 195: make as embed

  • admin_cog.py line 220: make as embed


todo config_cog.py:

  • config_cog.py line 37: get_logs command

  • config_cog.py line 38: get_appdata_location command

  • config_cog.py line 184: make as embed

  • config_cog.py line 190: make as embed

  • config_cog.py line 199: make as embed

  • config_cog.py line 207: make as embed

  • config_cog.py line 213: make as embed

  • config_cog.py line 285: make as embed


todo performance_cog.py:

  • performance_cog.py line 41: get_logs command

  • performance_cog.py line 42: get_appdata_location command

  • performance_cog.py line 136: limit amount of saved data, maybe archive it


todo purge_messages_cog.py:

  • purge_messages_cog.py line 28: get_logs command

  • purge_messages_cog.py line 29: get_appdata_location command


todo general_debug_cog.py:

  • general_debug_cog.py line 48: create regions for this file

  • general_debug_cog.py line 49: Document and Docstrings


todo image_manipulation_cog.py:

  • image_manipulation_cog.py line 54: create regions for this file

  • image_manipulation_cog.py line 55: Document and Docstrings

  • image_manipulation_cog.py line 245: make as embed

  • image_manipulation_cog.py line 249: make as embed

  • image_manipulation_cog.py line 256: make as embed

  • image_manipulation_cog.py line 260: maybe make extra attribute for input format, check what is possible and working. else make a generic format list

  • image_manipulation_cog.py line 275: make as embed


todo save_link_cog.py:

  • save_link_cog.py line 35: refractor 'get_forbidden_list' to not use temp directory but send as filestream or so

  • save_link_cog.py line 37: need help figuring out how to best check bad link or how to format/normalize it

  • save_link_cog.py line 372: refractor that monster of an function


todo save_suggestion_cog.py:

  • save_suggestion_cog.py line 57: create report generator in different formats, at least json and Html, probably also as embeds and Markdown

  • save_suggestion_cog.py line 59: Document and Docstrings

  • save_suggestion_cog.py line 199: make as embed

  • save_suggestion_cog.py line 205: make as embed

  • save_suggestion_cog.py line 220: make as embed

  • save_suggestion_cog.py line 232: make as embed

  • save_suggestion_cog.py line 236: make as embed

  • save_suggestion_cog.py line 240: make as embed

  • save_suggestion_cog.py line 245: make as embed

  • save_suggestion_cog.py line 281: make as embed

  • save_suggestion_cog.py line 284: make as embed

  • save_suggestion_cog.py line 295: make as embed

  • save_suggestion_cog.py line 299: make as embed

  • save_suggestion_cog.py line 303: make as embed

  • save_suggestion_cog.py line 308: make as embed

  • save_suggestion_cog.py line 318: make as embed

  • save_suggestion_cog.py line 353: make as embed

  • save_suggestion_cog.py line 356: make as embed

  • save_suggestion_cog.py line 360: make as embed


idea render_new_cog_file.py:

  • render_new_cog_file.py line 72: create gui for this

idea antipetros_bot.py:

  • antipetros_bot.py line 58: Use an assistant class to hold some of the properties and then use the __getattr__ to make it look as one object, just for structuring

todo antipetros_bot.py:

  • antipetros_bot.py line 56: create regions for this file

  • antipetros_bot.py line 57: Document and Docstrings


todo sqldata_storager.py:

  • sqldata_storager.py line 36: create regions for this file

  • sqldata_storager.py line 37: update save link Storage to newer syntax (composite access)

  • sqldata_storager.py line 38: Document and Docstrings

  • sqldata_storager.py line 39: refractor to subfolder


General Todos