Exemple #1
0
def mark(data, nickname):
    to_mark = data.split(' ', 1)

    marked = db.name(nickname)

    marked_dict = marked.get()

    if len(to_mark) == 2:
        if to_mark[0] != 'key':

            marked_dict[to_mark[0]] = to_mark[1]

            marked.set(marked_dict)

            return '记住了。' + to_mark[0] + ',' + to_mark[1]

        else:
            return 'key不能作为key'
    elif data == 'key':
        faya_reply = '目前全部key为:'
        for each_key in marked_dict:
            faya_reply += '\n' + each_key
        return faya_reply
    elif data in marked_dict:
        return marked_dict[data]
    else:
        return "格式不对╮( ̄▽ ̄" ")╭"
Exemple #2
0
def dummy():
    red = db.name('red').get()
    red.pop('now')
    red_key = list(red)[random.randint(0, len(red) - 1)]
    push = '毛泽东语录: \n\n' + red[red_key]['p']
    if red[red_key]['from']:
        push += '\n   -' + red[red_key]['from']

    return push
Exemple #3
0
def get_mh(order):

    mon_dict = db.name('mh').get()

    if order in mon_dict:
        return mon_dict[order]["info"]
    else:
        alter_dict = db.name('mon_alter').get()

        if order not in alter_dict:

            for each in mon_dict:
                if order == mon_dict[each]["jp_name"]:
                    return mon_dict[each]["info"]

            return "大概没有?"

        else:
            return mon_dict[alter_dict[order]]["info"]
Exemple #4
0
def popmark(data, nickname):
    marked = db.name(nickname)

    marked_dict = marked.get()

    if data in marked_dict:
        marked_dict.pop(data)
        marked.set(marked_dict)
        return '已去除。'
    else:
        return '你还没使用此key'
Exemple #5
0
def send_wx(to_buddy_abb, msg):

    wx = db.name('wx').search('short', to_buddy_abb)

    if wx:
        #print(wx['wx'])
        sock.send(wx['wx'] + '@@@' + msg, 'wx')
    else:
        return '联系人错误orz'

    return '发送成功'
Exemple #6
0
def mh_alter(order):
    if ':' not in order:
        return '……噫'
    else:
        tep = order.replace('alter ', '')
        ori, new = tep.split(':')

        print(ori, new)

        mon_dict = db.name('mh').get()

        if ori not in mon_dict:
            return '大概mhxx没有?'
        else:
            alter = db.name('mon_alter')

            alter_dict = alter.get()
            alter_dict[new] = ori
            alter.set(alter_dict)

            return '存好新名字了'
Exemple #7
0
def alter(nickname, data):
    arg = data.split('=')
    if len(arg) != 2:
        return '输入有误'
    else:
        if arg[1] in _registered_actions:
            if arg[0] in _registered_actions:
                return '会覆盖原有命令的说。还是算了吧'

            a = db.name(nickname)
            b = a.get()
            b[arg[0] + '_alt'] = arg[1]
            a.set(b)

            return '知道了(~ ̄△ ̄)~'
        else:
            return f'faya没{arg[0]}命令'
Exemple #8
0
def roll_someting(data, nickname):
    if (data == '吃啥') and (nickname == 'haru' or nickname == 'master'):
        rolled = db.name('r_mod').get()
        rolled = rolled[random.randint(0, len(rolled) - 1)]

        reply = '随机推荐:\n' + rolled['name']
        if 'average_cost' in rolled:
            reply += '\n' + rolled['average_cost']
        else:
            reply += '\n人均未知'

            reply += '\n地址:' + rolled['address']

        if 'distance' in rolled:
            reply += '\n距离宿舍约:' + rolled['distance'] + ' ' + rolled['duration']

        return reply
    else:

        return str(random.randint(0, 100))
Exemple #9
0
def add_bilibili(url):
    if 'anime/' in url:
        try:
            index = int(url.split('/')[-1])

            jsonp = get_bilibili_api(index)['result']

            title = jsonp['bangumi_title']

            update_time = jsonp['media']['episode_index']['index_show']
            time_reg = re.compile('每周(.)(\d+?):(\d+)')
            info = re.findall(time_reg, update_time)[0]

            trans = {
                '一': '0',
                '二': '1',
                '三': '2',
                '四': '3',
                '五': '4',
                '六': '5',
                '日': '6',
            }
            this_ani = {
                'title': title,
                'av_id': index,
                'day': trans[info[0]],
                'hour': info[1],
                'minute': str(int(info[2]) + 5)
            }
            print(this_ani)

            data = db.name('bili')

            a = data.get()
            a[this_ani['day'] + this_ani['hour'] +
              this_ani['minute']] = this_ani
            data.set(a)

            return f'已获取{title}信息、{update_time}'
        except TypeError:
            return '貌似url不合法,最后是数字么?或者遇到了蜜汁bug……'
Exemple #10
0
def scenario(nickname, content, contact):
    func_name, parameters = None, None

    if ' ' in content:
        func_name, parameters = content.split(' ', 1)
    else:
        if '.' in content:
            func_name, parameters = content.split('.', 1)
        else:
            func_name = content

    alter_dict = db.name(nickname).get()

    if alter_dict:
        if (func_name + '_alt') in alter_dict:
            func_name = alter_dict[func_name + '_alt']

    if func_name in _registered_actions:
        return do_action(func_name, parameters, nickname, contact)

    if func_name in lib.function_dict:
        return execute_simple_function(lib.get(func_name), parameters)

    faya_dict = faya_db.get()

    if content in faya_dict:
        return faya_dict[content]

    blur = faya_db_b.get()

    for key_word in blur:
        if key_word in content:
            return blur[key_word]

    if_way = simple_if(nickname, content)

    if if_way:
        return if_way
    else:
        return 0
Exemple #11
0
def clock(bot):
    nowhour = datetime.now().hour
    global group_qq
    gl = bot.List('group', group_name)
    if gl is not None and (nowhour == 0 or nowhour >= 6):
        for group in gl:
            trd = '%s点了www' % nowhour
            kqzl = 0
            if nowhour == 6:
                trd += '\n 早呀。好困。'
                bot.SendTo(group, trd)

                tenki = weather.get()
                bot.SendTo(group, tenki)

                kqzl = aqi.get()
                bot.SendTo(group, kqzl)

            if nowhour == 11:
                trd += '\n中午了呢'

            if nowhour == 20:
                oral = db.name('oral')
                oral_db = oral.get()

                day_key = list(oral.get())[0]
                push = '今日口语: ' + day_key + '\n' + oral_db[day_key]
                oral_db.pop(day_key)
                oral.set(oral_db)

                bot.SendTo(group, push)

            if nowhour == 0:
                trd += '\n什么都不想说了。。'

            if not kqzl:
                bot.SendTo(group, trd)
Exemple #12
0
                day_key = list(oral.get())[0]
                push = '今日口语: ' + day_key + '\n' + oral_db[day_key]
                oral_db.pop(day_key)
                oral.set(oral_db)

                bot.SendTo(group, push)

            if nowhour == 0:
                trd += '\n什么都不想说了。。'

            if not kqzl:
                bot.SendTo(group, trd)


ani_post = db.name('bili').get()

days, hours, minutes = [], [], []

if ani_post:
    for each in ani_post:
        if ani_post[each]['day'] not in days:
            days.append(ani_post[each]['day'])
        if ani_post[each]['hour'] not in hours:
            hours.append(ani_post[each]['hour'])
        if ani_post[each]['minute'] not in minutes:
            minutes.append(ani_post[each]['minute'])

    @qqbotsched(day_of_week=','.join(days),
                hour=','.join(hours),
                minute=','.join(minutes))
Exemple #13
0
def give_poem():
    poems = db.name('sj').get()
    poem = list(poems)[random.randint(0, len(poems) - 1)]
    return poem + '\n' + poems[poem].replace('。', '。\n').replace(
        '?', '?\n').replace('!', '!\n').replace(';', ';\n')
Exemple #14
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import inspect
import os
import random
import re
import lib.simple as lib
from core import db, enc, sock, sender
from core.Fconf import config

_registered_actions = {}

faya_db = db.name('faya_dict')
faya_db_b = db.name('faya_dict_b')


def action(name):
    def decorator(f):
        _registered_actions[name] = f
        return f

    return decorator


@action("faya")
def faya(data):
    if data == 'ver':
        ver = config.ver
        return f'版本为 {ver}'
    elif data == 'love':
Exemple #15
0
import _thread
import os

import itchat
from core.Fconf import config
from core import db
from core.sock import socket, sock_receive
from main import scenario

with open('faya.yml', 'r') as yml:
    conf = config.wx

self = conf['self']

data = db.name('wx').get()


@itchat.msg_register('Text')
def text_reply(msg):
    from_who = msg['FromUserName']

    from_buddy = itchat.search_friends(userName=from_who)['NickName']

    print(from_buddy)

    content = msg['Text']
    '''
    if from_buddy == self and content == 'reqq':
        with open('re.txt', 'w') as re:
            re.write('ok')
Exemple #16
0
def love(url, name):
    dcap = dict(DesiredCapabilities.PHANTOMJS)
    dcap["phantomjs.page.settings.userAgent"] = (
         'user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"'
    )

    service_args = ['--load-images=no', '--disk-cache=yes', '--ignore-ssl-errors=true']
    # service_args.append('--load-images=no')  ##关闭图片加载
    # service_args.append('--disk-cache=yes')  ##开启缓存
    # service_args.append('--ignore-ssl-errors=true')

    driver = webdriver.PhantomJS(desired_capabilities=dcap, service_args=service_args)

    #driver = webdriver.Chrome() #chrome_options=options

    driver.get("http://music.163.com/")

    driver.delete_all_cookies()

    #input()

    #c = driver.get_cookies()
    #print(c)


    for each in db.name('wyy').get_key('cookies'):
        driver.add_cookie(each)

    # for cookie in c:
    #    cook = {}
    #    for each in ['name', 'value', 'domain', 'path', 'expiry']:
    #        if each in cookie:
    #            cook[each] = cookie[each]
    #    print(cook)
    #    driver.add_cookie(cook)

    # os.chdir('/Users/Cordial/Desktop/')
    # with open ('songurl.txt' ,'r') as l:
    #    songs = l.read().split(',')
    # for song in songs:

    driver.get(url)
    driver.implicitly_wait(3)
    try:
        print('now')
        driver.switch_to.frame('contentFrame')
        WebDriverWait(driver, 5).until(
            ec.presence_of_element_located((By.XPATH, '//*[@id="content-operation"]/a[3]')))
        driver.find_element_by_xpath('//*[@id="content-operation"]/a[3]').click()
        print('click ok')
        #driver.get_screenshot_as_file('/Users/Cordial/Desktop/1.png')
        WebDriverWait(driver, 5).until(ec.presence_of_all_elements_located((By.CLASS_NAME, 'xtag ')))
        pop = driver.find_elements_by_class_name('xtag ')
        pop[2].click()
        WebDriverWait(driver, 5, 0.1).until(ec.presence_of_all_elements_located((By.CLASS_NAME, 'sysmsg')))
        sysmsg = driver.find_element_by_xpath('//div[@class="sysmsg"]/span').text
        time.sleep(2)

        title = driver.title.replace(' - 网易云音乐', '').replace(' - 单曲', '')

        if name == 'master':
            driver.find_element_by_xpath('//*[@id="content-operation"]/a[3]').click()
            print('click ok')
            WebDriverWait(driver, 5, 0.1).until(ec.presence_of_all_elements_located((By.CLASS_NAME, 'xtag ')))
            pop = driver.find_elements_by_class_name('xtag ')
            pop[1].click()
            return f'{title}:\n{sysmsg}'

        driver.close()
        print('finished ' + title)
        return f'{title}:\n{sysmsg}'
    except Exception as e:
        driver.get_screenshot_as_file('1.png')
        info = driver.find_elements_by_xpath('//div[@class="zcnt"]/div/div')
        if len(info):
            return '收藏不了的说...原因:\n'+info[0].text
        else:
            title = driver.title
            return f'收藏{title}失败……,原因:\n{e}'