2022-??-??: - *check_feeds() functions should use less file I/O now. json_save_entries() *IS* triggered per post. 5 new posts = writing 5 times to _entries file That's a lot of I/O. Place json_save_entries() somewhere else in the loop to save I/O. Idea: Make a variable to check if anything has been added to the entries[] list, then decide whether to use json_save_entries() Maybe use a database instead? But files are easy... Do we care about disks? 2022-04-21: - The bot will now populate empty entries[] list if feeds are present. This is helpful, if something happens to the _entries file, then the bot will try to "regenerate" it so that it won't spam every possible group with all the posts ever created. - General function "debug_message()" has been added. So far print() was used to output text. It is a lame and lazy "debugging". It is still used but in a debug_message() "wrapper". If later I would like to add proper "debugging", all I have to do is to change debug_message() function and all the "internal" messages will update. - /list command will now return "prettier" list. Till this moment, the bot returned a python list of all the feeds followed. It did not look nice. Now, a proper "list" will be returned with each feed per line. Bonus: /list did not inform when no feeds were followed. Now it will. - *check_feeds() functions will not duplicate hashes. There was a flaw where a hash has been added multiple times to the entries[] list. It was because entries.append(hash) was triggered per group message, rather than per post. (It was placed inside a wrong loop) It has been corrected.