Last active
May 25, 2018 18:53
-
-
Save sash13/9e17bf4df6baced3003ac27a64e6c731 to your computer and use it in GitHub Desktop.
join/leave infobot for matrix.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from matrix_bot_api.matrix_bot_api import MatrixBotAPI | |
#from matrix_bot_api.mregex_handler import MRegexHandler | |
from matrix_bot_api.mcommand_handler import MCommandHandler | |
from mmember_handler import MMemberHandler | |
import logging | |
import sys | |
logging.basicConfig( | |
filename='reduplicator1.log', | |
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
level=logging.INFO | |
) | |
logger = logging.getLogger('matrix_client.client') | |
# Global variables | |
USERNAME = "infobot" # Bot's username | |
PASSWORD = "" # Bot's password | |
SERVER = "https://localhost" # Matrix server URL | |
messages = { | |
'join': 'Привет, это Навальный. (на самом деле нет)<br />\n<br />\nНебольшой <strong>FAQ</strong>:<p>\n<strong>Q:</strong>Я зарегистрировался на matrix.org и мне пришло сообщение про какой-то GDPR и просят принять условия? Что делать?<br />\n<strong>A:</strong> Принимать условия, либо идти на другой сервер, список публичных серверов тут <a href="https://www.hello-matrix.net/public_servers.php">https://www.hello-matrix.net/public_servers.php</a> или попросить в этой конфе.<br />\n<br />\n<strong>Q:</strong> Почему у пользователей нет статусов онлайн/оффлайн?<br />\n<strong>A:</strong> Скорее всего ты зарегистрировался на матрикс.орге, у них отключена данная функция \"из-за нагрузок\". Выход есть, регистрироватся на другом публичном сервисе или попросить в этой конфе.<br />\n<br />\n<strong>Q:</strong> Зачем этот бот?<br />\n<strong>A: </strong>Одни участники конфы каждый раз когда приходит новый человек стараются объянить все, другие же бомбят от этого. Чтоб сохранить энергию первых и вторых был создан этот бот. Роботы должны работат, а люди творить и наслаждаться искусством (мемами)!<br />\n</p>', | |
'leave': 'https://www.youtube.com/watch?v=sos_GGtEQQQ', | |
'ban': 'https://www.youtube.com/watch?v=sos_GGtEQQQ' | |
} | |
#["invite", "join", "leave", "ban"] | |
def member_callback(room, event): | |
print 'member call' | |
print event | |
if event['content']['membership'] == 'join' and 'prev_content' not in event and 'replaces_state' not in event and 'prev_content' not in event['unsigned'] and 'replaces_state' not in event['unsigned']: | |
room.send_html('<a href=\"https://matrix.to/#/'+event['sender']+'\">'+event['content']['displayname']+'</a>: '+messages['join'].decode('utf-8')) | |
if event['content']['membership'] == 'leave': | |
room.send_text(messages['leave']) | |
def faq_callback(room, event): | |
print 'faq call' | |
room.send_html(messages['join']) | |
def main(): | |
# Create an instance of the MatrixBotAPI | |
bot = MatrixBotAPI(USERNAME, PASSWORD, SERVER) | |
member_handler = MMemberHandler(member_callback) | |
bot.add_handler(member_handler) | |
faq_handler = MCommandHandler("faq", faq_callback) | |
bot.add_handler(faq_handler) | |
faq1_handler = MCommandHandler("фаг", faq_callback) | |
bot.add_handler(faq1_handler) | |
bot.start_polling() | |
while True: | |
input() | |
if __name__ == "__main__": | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from matrix_bot_api.mhandler import MHandler | |
class MMemberHandler(MHandler): | |
def __init__(self, handle_callback): | |
MHandler.__init__(self, self.test_member, handle_callback) | |
def test_member(self, room, event): | |
if event['type'] == "m.room.member": | |
return True | |
return False |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment