예제 #1
0
 def __init__(self, save="", savefile=""):
     if savefile and not save:
         with open(savefile) as f:
             save = decode(f.read().strip())
     elif not (savefile or save):
         raise Exception("Either pass in a save or a save file!")
     save = decode(save).split("!END!")[0]
     self.data = base64.b64decode(save).decode("utf-8").split("|")
     self.version = self.data.pop(0)
     self.reserved = self.data.pop(0)
     startdata = self.data.pop(0).split(";")
     self.session_start, self.legacy_start, self.save_tstamp = (
         int(x) / 1000 for x in [startdata.pop(0) for y in range(3)])
     self.name = startdata.pop(0)
     self.seed = startdata.pop(0)
     self.preferences = self.data.pop(0)
     self.cookie_data = self.data.pop(0)
     self.building_data = self.data.pop(0)
     self.upgrades = self.data.pop(0)
     self.achievements = [x == "1" for x in self.data.pop(0)]
     self.buffs = self.data.pop(0)
     del self.data
     self.preferences = [
         self.preferences[x] == self.ALL_ON_PREFERENCES[x]
         for x in range(len(self.preferences))
     ]
예제 #2
0
    def google_dorker(self):
        iterate = 0
        found_url = []
        parse_found_cseurl = regex.compile(r'"clicktrackUrl": "(.*?)"',
                                           regex.I)
        parse_found_targeturl = regex.compile(r'&q=(.*?)&sa')

        while True:

            cse_google = "https://cse.google.com/cse/element/v1?rsz=" + self.resultSetSize[0] + \
            "&num=10&&start=" + str(iterate) + "&hl=en&source=gcsc&gss=.com&cselibv=" + self.cselibVersion[0] + \
            "&cx=" + self.cx[0] + "&q=" + self.dork + "&safe=off&cse_tok=" + self.cse_token[0] + "&exp=" \
            + self.exp[0][0] + "," + self.exp[0][1] + "&callback=google.search.cse.api16950"

            request = self.reqs.get(url=cse_google, headers=self.head)
            found = parse_found_cseurl.findall(request.text)

            if found:
                for cseurl in found:
                    found_url.append(
                        decode(parse_found_targeturl.findall(cseurl)[0]))

                for url in found_url:
                    print(url)
                iterate += 10

            else:
                break

        return found_url
예제 #3
0
def meteorhot():

    reply = ''

    req_headers = {
        'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'
    }

    data = []

    for i in range(5):

        req_data = {
            "boardId": "all",
            "page": i,
            "isCollege": False,
            "pageSize": 1
        }

        url = 'https://meteor.today/article/get_hot_articles'
        resp = requests.post(url, headers=req_headers, data=req_data)
        info = decode(resp.json()['result']).replace('false', 'False').replace(
            'true', 'True')

        data.append(eval(info[1:-1]))

    #data = sorted(data, key = lambda element: element['hotness'], reverse = True)

    print(data[0])

    reply += '試驗階段\n\n離開: /leave'

    return reply
예제 #4
0
def get_response(request):
    return str(request.path)
    # get query from request
    if 'q' in request.args:
        q = request.args.get('q')
    else:
        return '😬 That\'s a bad request.  Can you try again?'

    if not q:
        return '😬 That\'s a bad request.  Can you try again?'
    q = decode(q)
    print(q)

    answer = respond(q)
    return str(answer)
예제 #5
0
파일: bot.py 프로젝트: MrKofE/MW-bot
async def on_message(message):
    global m, faq  #, u
    #u = await client.get_user_info('Google Translator#1934')
    m = message
    print(message.server, '/', message.channel, '/', message.author, 'написал',
          message.content)
    owners = []
    for i in message.server.members:
        for j in i.roles:
            if j.name == 'Owner':
                owners.append(i)

    if message.content.startswith('<@!' + client.user.id + '>:'):
        client.logs_from(message.channel, limit=1)
        pass

    if message.content.lower().startswith(
            '!mc') or message.content.lower().startswith('!minecraft'):
        cmd = ' '.join(message.content.split()[1:])
        if cmd.lower().startswith('bots'):
            server = message.server.id
            global chat
            if message.author in owners:
                if len(cmd.lower().split()) == 2:
                    if not server in faq:
                        chat[server] = cmd.lower().split()[2]
            with open('chat.txt', 'w') as file:
                file.write(str(chat))

        if cmd.lower().startswith('hello'):
            await client.send_message(message.channel, '!mc hello')

        if cmd.lower().startswith('test'):
            await client.send_typing(message.channel)
            try:
                mcr.connect()
            except ConnectionRefusedError:
                for i in owners:
                    await client.send_message(
                        i, 'Сервер упал! Сделай что-нибудь! Игрок ' +
                        str(message.author) +
                        ' только что пропинговал сервер и ничего не работает!')
                await client.send_message(
                    message.channel,
                    'Сервер не работает. Отправлено сообщение владельцу сервера.'
                )
            else:
                await client.send_message(message.channel, 'Сервер работает!')
                mcr.command(
                    'tellraw @a ["[",{"text":"Minecraft bot","color":"dark_purple"},"] '
                    + message.author.display_name +
                    ' проверил сервер. Вот идиот!"]')
                mcr.disconnect()

        if cmd.lower().startswith('count'):
            counter = 0
            async for message in client.logs_from(
                    message.channel, limit=9999999999999999999999999):
                if message.author == client.user:
                    counter += 1
            await client.send_message(message.channel, counter)

        if cmd.lower().startswith('cmd'):
            for i in message.author.roles:
                if 'Админ' in i.name:
                    mcr.connect()
                    await client.send_message(
                        message.channel,
                        mcr.command(' '.join(cmd.split()[1:])))
                    mcr.disconnect()
                    break
            else:
                #await client.send_message(message.channel, 'Да что ты мне сделаешь, жалкий человечишка?')
                await client.send_message(message.channel, 'Обойдешься')

        if cmd.lower().startswith('search'):
            q = ' '.join(cmd.split()[1:])
            if '#' in q:
                q = q.split('#')
                q = [i.capitalize() for i in q]
                q = '#'.join([q[0]] +
                             [code(i).replace('%', '.') for i in q[1:]])
            else:
                q = q.capitalize()
            for i in answer(q):
                if i[0]:
                    await client.send_message(
                        message.channel, '***' + i[1] + '*** (__*' +
                        decode(i[2]).replace(' ', '_') + '*__)\n' + i[3] +
                        '\n')
                else:
                    await client.send_message(message.channel,
                                              i[1].replace(' ', '_'))
            print('sent')

        if cmd.lower().startswith('info'):
            await client.send_message(message.channel,
                                      embed=profile(' '.join(cmd.split()[1:])))

        if cmd.lower().startswith('time'):
            await client.send_message(message.channel, time())

        if cmd.lower().startswith('uuid'):
            await client.send_message(message.channel,
                                      get_nick(cmd.split()[1]))

        if cmd.lower().startswith('emoji'):
            for i in message.server.members:
                print(i.name)
                try:
                    await client.send_message(message.channel, i.avatar_url)
                except:
                    pass
            print('em')

        if cmd.lower().startswith('help'):
            embed = discord.Embed(
                title='Помощь по боту',
                color=0x008800,
                description='Вместо `!minecraft` можно использовать `!mc`')
            embed.set_author(name="Поиск по Minecraft Wiki")
            embed.set_thumbnail(
                url=
                "https://d1u5p3l4wpay3k.cloudfront.net/minecraft_ru_gamepedia/b/bc/Wiki.png?version=26fd08a888d0d1a33fb2808ebc8678e9"
            )
            embed.add_field(name='`!minecraft help`',
                            value='Увидеть этот список',
                            inline=True)
            embed.add_field(name='`!minecraft search <запрос>`',
                            value='Искать по Minecraft Wiki',
                            inline=True)
            embed.add_field(name='`!minecraft plugin <плагин> [сообщение]`',
                            value='Попросить поставить плагин',
                            inline=True)
            embed.add_field(name='`!minecraft info <ник игрока>`',
                            value='Профиль игрока',
                            inline=True)
            embed.add_field(name='`!minecraft time`',
                            value='Узнать время',
                            inline=True)
            embed.add_field(name='`!minecraft kill`',
                            value='Остановить бота',
                            inline=True)
            embed.add_field(name='`!minecraft faq`',
                            value='FAQ сервера',
                            inline=True)
            embed.add_field(name='`!minecraft world <название> [описание]`',
                            value='Попросить создать мир',
                            inline=True)
            embed.add_field(name='`!minecraft ip`',
                            value='IP сервера',
                            inline=True)
            embed.add_field(name='`!minecraft op [причина]`',
                            value='Попросить `@op` и `/op`',
                            inline=True)
            #embed.add_field(name='`!minecraft down [сообщение]`', value='Отправить сообщение о падении сервера', inline=True)
            embed.add_field(
                name='`!minecraft count`',
                value='Посчитать кол-во сообщений от бота в этом канале',
                inline=True)
            embed.add_field(
                name='`!minecraft test`',
                value=
                'Проверить работу сервера. В будущем `!minecraft down` перестанет существовать. Бугага.',
                inline=True)
            embed.set_footer(
                text='Помоги создателю!\nWMR: R725794253675\nQiwi:+79166758407'
            )
            await client.send_message(message.channel, embed=embed)

        if cmd.lower().startswith('ip'):
            await client.send_message(message.channel, '`trolling.ddns.net`')

        if cmd.lower().startswith('world'):
            for i in owners:
                prin
                await client.send_message(
                    i,
                    str(message.author) + ' хочет мир' + cmd.split()[2] + '.' +
                    (cmd[3:] + '.' if cmd.split()[3] else ''))

        if cmd.lower().startswith('op'):
            for i in owners:
                if len(cmd.split()) == 1:
                    await client.send_message(
                        i,
                        str(message.author) + ' хочет оператора')
                else:
                    await client.send_message(
                        i,
                        str(message.author) + ' хочет оператора. Он сказал: ' +
                        cmd[3:])

        #if cmd.lower().startswith('down'):
        #    for i in owners:
        #        if len(cmd.split()) == 1:
        #            await client.send_message(i, 'Сервер упал! Сделай что-нибудь!')
        #        else:
        #            await client.send_message(i, 'Сервер упал! Сделай что-нибудь! ' + str(message.author) + ' говорит: "' + cmd[5:] + '"')

        if cmd.lower().startswith('faq'):
            server = message.server.id
            if message.author in owners:
                if len(cmd.lower().split()) == 3 and cmd.lower().split(
                )[1] == 'set':
                    if not server in faq:
                        faq[server] = cmd.lower().split()[2]
            with open('faq.txt', 'w') as file:
                file.write(str(faq))
            if server in faq:
                embed = discord.Embed(
                    title="FAQ",
                    description=
                    "Вас не послали, вы просто задали частый вопрос",
                    color=0x008800)
                async for i in client.logs_from(client.get_channel(
                        faq[server]),
                                                reverse=True):
                    j = decodeFAQ(i.content)
                    print(j)
                    embed.add_field(name=j[0], value=j[1], inline=False)
                await client.send_message(message.channel, embed=embed)
            else:
                await client.send_message(
                    message.channel,
                    'Сначала используйте `!mc faq set <ID канала с FAQ>`')

        if cmd.lower().startswith('plugin'):
            pl = '-'.join(cmd.split()[1])
            async with aiohttp.get('https://dev.bukkit.org/projects/' + pl +
                                   '/files/latest') as r:
                print(plugin)
                if r.status == 200:
                    for i in owners:
                        await client.send_message(
                            i, ' '.join(cmd.split()[2:]) + message.author +
                            ' попросил поставить плагин https://dev.bukkit.org/projects/'
                            + pl + '/files/latest')

        if cmd.lower().startswith('kill'):
            for i in message.author.roles:
                if i.name == 'Host':
                    await client.send_message(message.channel,
                                              'Приятно было помочь!')
                    exit()
            await client.send_message(
                message.channel, 'Да что ты мне сделаешь, жалкий человечишка?')
예제 #6
0
def ttsByArg():
    text = decode(request.args.get('t'))
    return send_file(stringToAudioFile(text))
예제 #7
0
def tts(words):
    text = decode(words)
    return send_file(stringToAudioFile(text))