Пример #1
0
 def parse_train_data(self, data_list):
     #print (data_list)
     value = {
         '11': data_list[3],
         '10': self.get_from_to_station_name(data_list),
         '12': self.get_start_arrive_time(data_list),
         '1': data_list[10],
         '3': data_list[31] or '--',
         '2': data_list[30] or '--',
         '5': data_list[21] or '--',
         #'4': data_list[23] or '--',
         '4': self.get_train_color(data_list, '23', 'yellow') or '--',
         #'7': data_list[28] or '--',
         '7': self.get_train_color(data_list, '28', 'red') or '--',
         '6': data_list[24] or '--',
         '9': data_list[29] or '--',
         '8': data_list[33] or '--'
     }
     soft_seat = data_list[23]
     hard_seat = data_list[28]
     if soft_seat != u'无' or hard_seat != u'无':
         checi = data_list[3]
         date = data_list[13]
         message = date + ' ' + checi + u' 软卧剩余 ' + soft_seat + u' 硬卧剩余 ' + hard_seat
         myLog.writeLog(message)
     #print value
     return value
Пример #2
0
def tmp_init():
    '''临时断线调整'''
    global cnt
    strs = "张宇   王含艺"
    datas = strs.split("   ")
    for n in datas:
        member_checked[n] = 1
        cnt += 1
    writeLog('初始化结果为%d人' % cnt)
    writeLog(member_checked)
Пример #3
0
def insert_bbsindex(index):
    conn = conn_bbsindex()
    cur = conn.cursor()
    for i in index :
        try :
            if isin_index(i[1]) == True: 
                continue
            randnum = random.randint(2,10)#先生成一个随机数的
            text = filter_tags(str(i[3]))
            sql = "insert into bbsindex(title ,link ,author ,content,text,score,date) values('%s' ,'%s' ,'%s','%s','%s', '%d','%s')"  %(str(i[0]),str(i[1]),str(i[2]),str(i[3]),text,randnum,time.strftime('%Y-%m-%d',time.localtime(time.time())))
#            sql = "insert into bbsindex(title ,link ,author ,content,score,date) values('%s' ,'%s' ,'%s' ,'%s', %d,'%s')"  %(str(i[0]),str(i[1]),str(i[2]),str(i[3]),randnum,time.strftime('%Y-%m-%d',time.localtime(time.time())))

            print 
            cur.execute(sql)
            conn.commit()
        except MySQLdb.ProgrammingError as error:
            myLog.writeLog(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
            print "---->SQL Error: %s" % error
            myLog.writeLog("---->SQL Error: %s" % error)
            myLog.writeLog( sql)
            myLog.writeLog('--------------------')
            conn.rollback()
    conn.commit()
    cur.close()
    conn.close()
Пример #4
0
def init_group_member(group_info):
    '''预处理json数据初始化'''
    stu = []
    if len(group_info) == 1:
        group_info = group_info[0]
    for person in group_info['MemberList']:
        tmp = person['DisplayName']
        if tmp != '' and tmp != '彭小萍' and tmp != '禹皓晨' and tmp.find(
                '老师') == -1:
            stu.append(person['DisplayName'])
    if '张宇' not in stu:
        stu.append('张宇')
    ans = '初始化%d人,它们分别是' % len(stu)
    ans += '   '.join(stu)
    writeLog(ans)
    return stu
Пример #5
0
def get_group_info():
    '''查询好友列表/群信息,获取群的username,对群成员进行分析需要用到'''
    global groupNum
    global group_user_name
    groups = itchat.get_chatrooms(update=True)
    for g in groups:
        if g['NickName'] == group_name:
            group_user_name = g['UserName']
            RoomList = {}
            groupNum = ''
            if len(g['MemberList']) == 0:
                RoomList = read_file_info()
            else:
                RoomList = g
            groupNum = g['UserName']
            writeLog('最新的groupID:  ' + groupNum)
            return RoomList
Пример #6
0
def time_stat(stuInfo):
    '''定时统计线程执行体'''
    global cnt
    while True:
        cur_time = datetime.datetime.now().strftime('%H:%M')
        if cur_time == "13:00":
            if cnt >= 32:
                continue
            groups = itchat.get_chatrooms(update=True)
            l = unchecked_stat(stuInfo)
            if '张宇' in l:
                l.remove('张宇')
            ans = "还有%d人未签到,他们分别是" % len(l)
            ans += '   '.join(l)
            writeLog('ans     : ' + ans)
            for g in groups:
                if g['NickName'] == group_name:
                    to_group = g['UserName']
                    itchat.send(ans, to_group)
                    writeLog('send ok!')
        elif cur_time == "06:00":
            #重新开始,清空变量
            cnt = 0
            get_group_info()  #更新groupNum
            member_checked.clear()
            strSign = str(datetime.datetime.now().month) + '-' + str(
                datetime.datetime.now().day) + "开始签到"
            writeLog(strSign)
            itchat.send(strSign, group_user_name)
        time.sleep(60)
Пример #7
0
def insert_bbsindex(index):
    conn = conn_bbsindex()
    cur = conn.cursor()
    for i in index :
        try :
            if isin_index(i[1]) == True: 
                continue
            randnum = random.randint(2,10)#先生成一个随机数的
            sql = "insert into bbsindex(title ,link ,author ,content,score,date) values('%s' ,'%s' ,'%s' ,'%s', %d,'%s')"  %(str(i[0]),str(i[1]),str(i[2]),str(i[3]),randnum,time.strftime('%Y-%m-%d',time.localtime(time.time())))

            cur.execute(sql)
            conn.commit()
        except :
            myLog.writeLog(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
            myLog.writeLog('insert bad ')
            myLog.writeLog( sql)
            myLog.writeLog('--------------------')
            conn.rollback()
    conn.commit()
    cur.close()
    conn.close()
Пример #8
0
def print_content(msg):
    '''监听群消息记录,自动回复签到情况'''
    global cnt
    if msg['FromUserName'] == groupNum or msg['ToUserName'] == groupNum:
        if msg['Text'].find(HEALTH_STATU) != -1 or msg['Text'].find(
                CONTACK_STATU) != -1:
            if msg['ActualNickName'] in member_checked.keys():
                reply = "请勿重复签到"
                return reply
            cnt += 1
            writeLog("该群发的消息为: " + msg['Text'])  #打印哪个群给你发了什么消息
            reply = msg['ActualNickName'] + '签到成功,' + "目前已成功签到%d人\n" % cnt
            if (cnt == 32):
                reply += "\n所有人已经签到完毕,收工"
            if (cnt > 32):
                reply = ''
            member_checked[msg['ActualNickName']] = 1
            writeLog("回复内容为: " + reply)
            writeLog("当前已签到成员为:")
            writeLog(str(member_checked))  #换行
            return reply
    else:
        #writeLog("不是该群消息")
        pass
Пример #9
0
    def insertBbsDb(self,index):
        self.conn = self.connConnect(self)
        cur = self.conn.cursor()
        for i in index :
            try :
                if self.isInIndex(i[1]) == True: 
                    continue
                randnum = random.randint(2,10)#先生成一个随机数的
                sql = "insert into bbsindex(title ,link ,author ,content,text,score,date) values('%s' ,'%s' ,'%s' ,'%s','%s', '%d','%s')" \
                                 %(str(i[0]),str(i[1]),str(i[2]),str(i[3]),filter_tags(str(i[3])),randnum,time.strftime('%Y-%m-%d',time.localtime(time.time())))
#                sql = "insert into bbsindex(title ,link ,author ,content,score,date) values('%s' ,'%s' ,'%s' ,'%s', %d,'%s')"  %(str(i[0]),str(i[1]),str(i[2]),str(i[3]),randnum,time.strftime('%Y-%m-%d',time.localtime(time.time())))
                cur.execute(sql)
                self.conn.commit()
            except :
                myLog.writeLog(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
                print('insert bad ')
                myLog.writeLog(i[3])
                myLog.writeLog('--------------------')
                self.conn.rollback()
        self.conn.commit()
        
        cur.close()
        self.conn.close()
Пример #10
0
def logout_callback():
    writeLog(datetime.datetime.now().strftime('%H:%M') + '时刻网页微信自动登出')
Пример #11
0
def login_callback():
    writeLog('Login successfully!')
Пример #12
0
    datas = strs.split("   ")
    for n in datas:
        member_checked[n] = 1
        cnt += 1
    writeLog('初始化结果为%d人' % cnt)
    writeLog(member_checked)


# 解决wechat自动logout问题,https://github.com/littlecodersh/ItChat/issues/448
def login_callback():
    writeLog('Login successfully!')


def logout_callback():
    writeLog(datetime.datetime.now().strftime('%H:%M') + '时刻网页微信自动登出')
    #itchat.auto_login(hotReload=True, loginCallback=login_callback, exitCallback=logout_callback)


if __name__ == '__main__':
    #tmp_init()
    writeLog('————————————————————自动回复程序启动——————————————————')
    itchat.auto_login(loginCallback=login_callback,
                      exitCallback=logout_callback)
    group_json_data = get_group_info()
    stu_info = init_group_member(group_json_data)
    thr_update = threading.Thread(target=update_group_num)
    thr_remind = threading.Thread(target=time_stat, args=(stu_info, ))
    thr_update.start()
    thr_remind.start()
    itchat.run()