(- for each new submission, if the content is bigger than 35 media OR there has been over 20 messages in the CHATROOM_SEMIPUBLIC_GROUP_ID inbetween last submission and the new one, add one of the following messages randomly after submitting media and pin that msg: - […], then delete the old warning and resend the following warning again immediately and pin it: "" - add https://pypi.org/project/lexicont/ to monitor all new messages within 15 minute cycles, ML analyze and detect purge score of that convo blob ect.) 01/05/2026: - first time warning does not work - reindex command shall pull all OLD submission from the backup CHATROOM_PRIVATE_BACKUP_GROUP_ID as well and also, save the hashes in a json, also for new submissions - formatting is not proper the way i expressed/want it, i.e. welcome, submitted ect. - fix: blacklist displays censorship too complex ☑️ - links get censored instead of just deleted, even for admins ☑️ - add softban, permanent ban, softmute, mute, kick commands: /sban @ or id, duration & time unit, reason (optional) -> bans user for certain time (save in db) /smute @ or id, duration & time unit, reason (optional) -> mutes user for certain time /mute @ or id, reason (optional) -> mutes user forever /pban @ or id, reason (optional) -> bans user forever /rmute @ or id -> revokes mute /rban @ or id -> revokes ban /kick @ or id, reason (optional) -> kicks a user once - add better log to save every little action & command executed in functional db - add sqlite3 integration - make user bans when /ban is executed by admin be saved in the json, so even after restart they cannot contact admins again - rework the button 'New Chat' to say/into 'Contact Administrators' ☑️ - fix/add auto delete leave messages basically delete the system messages like '... left the group' that telegram shows ☑️ - make when new 'Media submitted msg' is sent, delete the prior one (if user sends large portions of data) ☑️ - if a message contains a link and blacklisted word, do not send censored message with link, just delete old message as now someone could bypass the link blocker by just adding a slur word into their msg - add a command to reload the config file that can only be executed by admins in any of the groups (except backup CHATROOM_PRIVATE_BACKUP_GROUP_ID), also make the config a dynamic json and add much more configuration to it, such as instead of harcoding what messages should look like etc. or invite links, make it fully configurable - add multi group/channel/branch management via admin commands that let you change & view & reload the config within telegram 30/04/2026: - purge chat CHATROOM_SEMIPUBLIC_GROUP_ID every 36hours, except for all messages from the bots - refine messages, especially welcome & submission accepted into the following - new welcome message: "@username (links to profile, or simply id if user has no username set) welcome to the official s3lfharm archive. You can [view media](UNDERLINE) by either checking [pinned messages](BOLD) or the [media section](BOLD) if you click on the channel. [Feel free](UNDERLINE) to share your own [s3lfharm imagery](SPOILER + ITALIC) using this bot ('this bot' shall hyperclickable link to https://t.me/selfharmmeowbot?start=submit). [💋 Join the public archive https://t.me/+8lo1VJuwVRwxOTk0 (S3LF HARM)](QUOTE)" - new submission accepted message/caption: "This is an [anonymous](UNDERLINE) submission reviewed by admins. You can apply having [self-harm imagery](SPOILER + ITALIC) posted using this bot. ('this bot' hyperlinks to https://t.me/selfharmmeowbot?start=submit)" - monitor ALL changes of usernames of ALL users and send them in chat CHATROOM_SEMIPUBLIC_GROUP_ID, CHAT_CONTACT_ADMIN_GROUP_ID like: "@old_username (clickable hyperlink to profile via id tho) changed username to @new_username (clickable hyperlink to profile via id again) at EXACT_TIME." - turn bot actions in private chats into clickable style buttons directly under the message, not "official" telegram buttons in the message prompt - use any kind of library etc. if possible to avoid duplicate sending of data, check entirety of CHATROOM_PRIVATE_BACKUP_GROUP_ID if that same video/picture submitted already exists, if it does and the submission is approved/rejected say additionally i.e.: "Submitted content from @.../USERID contains x duplicates. Skipping those." - on first time using bot user has to confirm: "Hey! This bot is affiliated with services offering extreme contents and services involving topics/ touching on topics such as [political controversies, gore, self-injury](ITALIC + SPOILER] ect. [If](BOLD) you [acknowledge that](BOLD) and want to [proceed](BOLD), please tap '[Yes](BOLD + UNDERLINE)'. This is solely a trigger warning that will only show up [once](UNDERLINE)." - add a blacklist system working the following: if a message contains any word from BLACKLISTED_WORDS_LIST, first apply REPLACEMENT_CHARSET on ALL blacklisted words in that messages, for those blacklisted words for the rest of the characters that have not been replaced by REPLACEMENT_CHARSET please make it apply either CHARTSET_1, CHARTSET_2, CHARTSET_3 or CHARTSET_4, delete the original message immediately and respond like this: "Censored text from @.../USERID -> QUOTE 'i love 🅁 @ 🄿 🄴'" or if user has no username set "Censored text from USERID (which links to their profile) -> QUOTE 'i love 🅁 @ 🄿 🄴'" and inside the quote make each blacklisted censored word a spoiler + between each letter of each blacklisted word must be two spaces - also, delete ANY kind of LINK that is sent immediately, even the sneaky ones like google[.]com or t .me/ ect., except for admins, those are still allowed to send