Exemplo n.º 1
0
def splitHongBao(message):
    sqllist = {}
    sqlstr = None
    eventsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value)  \
     and ('requestData' in message.value['content']) and ('clientId' in message.value['content']['requestData']) and ('uin' in message.value['content']['requestData'])\
     and ('nickname' in message.value['content']['requestData']) and ('userIp' in message.value['content']) \
     and ('clientChannel' in message.value['content']['requestData']) and ('flag' in message.value['content']['requestData']) \
     and ('clientVer' in message.value['content']['requestData']) and ('share_url' in message.value['content']['requestData']):
        if (message.value['eventid'] == 100121) and (
                'hongbao/share.html'
                in message.value['content']['requestData']['share_url']):
            uin = int(message.value['content']['requestData']['uin'])
            date = message.value['serTime']
            date = date.replace('/', '-')
            nick = message.value['content']['requestData']['nickname']
            ip = message.value['content']['userIp']
            flag = int(message.value['content']['requestData']['flag'])
            channel = message.value['content']['requestData']['clientChannel']
            clientver = message.value['content']['requestData']['clientVer']
            cid = message.value['content']['requestData']['clientId']
            sqlstr = "insert into hongbao_shareuin_info(tjdate,uin,nick,ip,flag,client_channel,client,client_ver)" \
                " values('%s',%d,'%s','%s',%d,'%s','%s','%s')"%(date,uin,nick,ip,flag,channel,cid,clientver)
            commentstr = EvensIDS.GetEventName(EvensIDS.EVENT_HONGBAO_ID)
            eventstr = EvensIDS.GetEventSql(EvensIDS.EVENT_HONGBAO_ID, uin,
                                            date, commentstr)
    sqllist['insert'] = sqlstr
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 2
0
def splitSendGift(message):
    insertsql = None
    eventsql = None
    eventsql2 = None
    sqllist = {}
    regstr = '(?P<date>\d+/\d{2}/\d{2}\s+\d{2}:\d{2}:\d{2})\|(?:\s+type:suibo\s+version:\d+.\d+.\d+.\d+\s+module:SEND_GIFT\s+eventid:769\s+pid:1\s+servid:\d+\s+roomid:)'\
     '(?P<roomid>\d+)(?:\s+src:)(?P<srcuin>\d+)(?:\s+vid:)(?P<vid>\d+_\d+)(?:\s+dst:)(?P<dstuin>\d+)(?:\s+presentMony:)(?P<sendmoney>\d+)(?:\s+combo:)(?P<combo>\d+)'
    pattern = re.compile(regstr)
    match = pattern.search(message.value['message'])
    if match:
        tablename = TableNameS.suibo_room_sendgift_info  # + '_' + time.strftime("%Y%m", time.localtime())
        insertsql = "insert into %s(tjdate,roomid,srcUin,vid,dstUin,money,combo) values('%s',%d,%d,'%s',%d,%d,%d)"%\
          (tablename,match.group('date'),int(match.group('roomid')),int(match.group('srcuin')),match.group('vid'),int(match.group('dstuin')),int(match.group('sendmoney')),int(match.group('combo')))
        commentstr = u"在主播号%s送了%d乐豆(%f人民币),连击%d次" % (
            match.group('vid'), int(match.group('sendmoney')),
            int(match.group('sendmoney')) / float(100000),
            int(match.group('combo')))
        eventsql = EvensIDS.GetEventSql(EvensIDS.EVENT_SENDGIFT_ID,
                                        int(match.group('srcuin')),
                                        match.group('date'), commentstr)
        commentstr2 = u"在主播号%s收了用戶%d送的%d乐豆(%f人民币) 连击%d次" % (
            match.group('vid'), int(match.group('srcuin')),
            int(match.group('sendmoney')), int(match.group('sendmoney')) /
            float(100000), int(match.group('combo')))
        eventsql2 = EvensIDS.GetEventSql(EvensIDS.EVENT_RECVGIFT_ID,
                                         int(match.group('dstuin')),
                                         match.group('date'), commentstr2)
    sqllist['insert'] = insertsql
    sqllist['event'] = eventsql
    sqllist['event2'] = eventsql2
    return sqllist
Exemplo n.º 3
0
def splitLL(message):
    insertsql = None
    eventsql = None
    sqllist = {}
    regstr = '(?P<date>\d+/\d{2}/\d{2}\s+\d{2}:\d{2}:\d{2})\|(?:\s+LL\s+)(?P<uin>\d+)(?:\s+logon room\s+)(?P<roomid>\d+)'\
       '(?:\s+devType\s+=\s+)(?P<devtype>\d+)(?:\s+)(?P<ip>\d+.\d+.\d+.\d+):(?:\d+\s+money\s+=\s+\d+,\s+recv\s+=\s+\d+'\
        '\s+accountState=\d+,\s+customFace=\d+,\s+rank\s+=\d+\s+\d+,\s+mac=)(?P<mac>[0-9a-zA-Z]{0,60})(?:\s+proxy)'\
        '(?P<proxyip>\d+.\d+.\d+.\d+):(?:\d+)(?:\s+enterpic=[0-9a-zA-Z._/]*\s+newpic=[0-9a-zA-Z._/]*\s+level\s+=\s+\d+\s+'\
         'ver=\d+\s+loginSpan\s+)(?P<span>\d+)'
    pattern = re.compile(regstr)
    match = pattern.search(message.value['message'])
    if match:
        tablename = TableNameS.suibo_room_login_info  # + '_' + time.strftime("%Y%m", time.localtime())
        insertsql = "insert into %s(tjdate,uin,roomid,devType,ip,mac,proxyip,loginSpan) values('%s',%d,%d,%d,'%s','%s','%s',%d)" % (
            tablename, match.group('date'), int(match.group('uin')),
            int(match.group('roomid')), int(
                match.group('devtype')), match.group('ip'), match.group('mac'),
            match.group('proxyip'), int(match.group('span')))
        ipaddr = SuiboGetIP(match.group('ip'))
        if ipaddr == None:
            ipaddr = u'未知地址'
        commentstr = u"房间号:%d,登陆IP:%s %s" % (int(
            match.group('roomid')), match.group('ip'), ipaddr)
        eventsql = EvensIDS.GetEventSql(EvensIDS.EVENT_LOGINCHAT_ID,
                                        int(match.group('uin')),
                                        match.group('date'), commentstr)
    sqllist['insert'] = insertsql
    sqllist['event'] = eventsql
    return sqllist
Exemplo n.º 4
0
def SplitRegLoginSql(message):
    insertsql = None
    updatesql = None
    eventsql = None
    sqllist = {}
    ret = GetRegUinInfo(message)
    if ret == None:
        return sqllist
    if ret['mode'] > 0:
        insertsql = "update suibo_user_info set regtime='%s',login_type=%d,clientchannel='%s' where uin = %d" % (
            ret['time'], ret['source'], ret['channel'], ret['uin'])
    else:
        insertsql = "update suibo_user_info set login_type=%d,clientchannel='%s' where uin = %d" % (
            ret['source'], ret['channel'], ret['uin'])

    if ret['mode'] > 0:
        updatesql = "insert into suibo_user_info(regtime,uin,login_type,clientchannel) values('%s',%d,%d,'%s')" % (
            ret['time'], ret['uin'], ret['source'], ret['channel'])
    else:
        updatesql = "insert into suibo_user_info(uin,login_type,clientchannel) values(%d,%d,'%s')" % (
            ret['uin'], ret['source'], ret['channel'])
    commentstr = None
    if ret['mode'] > 0:
        commentstr = u"第一次授权登陆,来源:%s 渠道:%s" % (LoginType.GetName(
            ret['source']), ret['channel'])
    else:
        commentstr = u"来源:%s 渠道:%s" % (LoginType.GetName(
            ret['source']), ret['channel'])
    eventsql = EvensIDS.GetEventSql(EvensIDS.EVENT_LOGIN_ID, ret['uin'],
                                    ret['time'], commentstr)
    sqllist['insert'] = insertsql
    sqllist['update'] = updatesql
    sqllist['event'] = eventsql
    return sqllist
Exemplo n.º 5
0
def splitAppleBuy(message):
    sqllist = {}
    sqlstr = None
    eventsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value)  \
     and ('requestData' in message.value['content']) and ('clientId' in message.value['content']['requestData']) and ('uin' in message.value['content']['requestData'])\
     and ('clientChannel' in message.value['content']['requestData']) \
     and ('clientVer' in message.value['content']['requestData']) and ('orderNum' in message.value['content']['requestData']) \
     and ('retData' in message.value['content']) and ('goods_id' in message.value['content']['requestData']):
        cid = message.value['content']['requestData']['clientId']
        if (message.value['eventid']
                == 10029) and (cid == 'quokka_ios' or cid == 'quokka_android'):
            uin = int(message.value['content']['requestData']['uin'])
            date = message.value['serTime']
            date = date.replace('/', '-')
            channel = message.value['content']['requestData']['clientChannel']
            clientver = message.value['content']['requestData']['clientVer']
            money = message.value['content']['retData']
            ordernum = message.value['content']['requestData']['orderNum']
            tablename = TableNameS.suibo_usr_buy + '_' + time.strftime(
                "%Y%m", time.localtime())
            npaytype = 5
            sqlstr = "insert into %s(date,uin,cash,channel,clientver,ordernum,gid,paytype)" \
                " values('%s',%d,%s,'%s','%s','%s','%s',%d)"%(tablename,date,uin,money,channel,clientver,ordernum,message.value['content']['requestData']['goods_id'],npaytype)
            commentstr = u"充值:%s元,方式:%s,订单号:%s" % (
                money, PayTypeName.GetName(npaytype), ordernum)
            eventstr = EvensIDS.GetEventSql(EvensIDS.EVENT_BUY_ID, uin, date,
                                            commentstr)
    sqllist['insert'] = sqlstr
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 6
0
def splitWebBuy(message):
    sqllist = {}
    sqlstr = None
    eventsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value)  \
     and ('requestData' in message.value['content'])\
     and  ('out_trade_no' in message.value['content']['requestData']) \
     and ('body' in message.value['content']['requestData'])\
     and ('price' in message.value['content']['requestData']):
        if message.value['eventid'] == 10077:
            bodyjoson = json.JSONDecoder().decode(
                message.value['content']['requestData']['body'])
            if ('uin' in bodyjoson):
                uin = int(bodyjoson['uin'])
                date = message.value['serTime']
                date = date.replace('/', '-')
                money = message.value['content']['retData']
                ordernum = message.value['content']['requestData'][
                    'out_trade_no']
                gid = bodyjoson['goodId']
                tablename = TableNameS.suibo_usr_buy + '_' + time.strftime(
                    "%Y%m", time.localtime())
                npaytype = 2
                sqlstr = "insert into %s(date,uin,cash,ordernum,gid,paytype)" \
                   " values('%s',%d,%s,'%s','%s',%d)"%(tablename,date,uin,money,ordernum, gid,npaytype)
                commentstr = u"充值:%s元,方式:%s,订单号:%s" % (
                    money, PayTypeName.GetName(npaytype), ordernum)
                eventstr = EvensIDS.GetEventSql(EvensIDS.EVENT_BUY_ID, uin,
                                                date, commentstr)
    sqllist['insert'] = sqlstr
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 7
0
def splitWebDrawMoney(message):
    sqllist = {}
    sqlstr = None
    eventsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value)  \
     and ('requestData' in message.value['content']) and ('uin' in message.value['content']['requestData']) \
     and ('money' in message.value['content']['requestData']):
        if message.value['eventid'] == 310000:
            date = message.value['serTime']
            money = message.value['content']['requestData']['money']
            uin = message.value['content']['requestData']['uin']
            tablename = TableNameS.suibo_drawmoney + '_' + time.strftime(
                "%Y%m", time.localtime())
            sqlstr = "insert into %s(date,uin,money)" \
                " values('%s',%d,%s)"%(tablename,date,int(uin),money)
            commentstr = u"申请提现:%s元" % (money)
            eventstr = EvensIDS.GetEventSql(EvensIDS.EVENT_DRAWMONEY_ID, uin,
                                            date, commentstr)
    sqllist['insert'] = sqlstr
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 8
0
def splitLO(message):
    insertsql = None
    eventsql = None
    sqllist = {}
    regstr = '(?P<date>\d+/\d+/\d+\s+\d+:\d+:\d+)\|(?:\s+type:suibo\s+version:\d+.\d+.\d+.\d+\s+module:LOG_OUT_ROOM\s+eventid:257\s+pid:1\s+servid:\d+\s+roomid:)'\
      '(?P<roomid>\d+)(?:\s+uin:)(?P<uin>\d+)(?:\s+ver:\d+\s+ip:\d+.\d+.\d+.\d+\s+port:\d+\s+proxyIp:\d+.\d+.\d+.\d+\s+proxyPort:\d+\s+mac:[0-9a-zA-Z]{0,40})'\
      '(?:\s+startTime:\d+-\d+-\d+\s+\d+:\d+:\d+\s+endTime:\d+-\d+-\d+\s+\d+:\d+:\d+\s+keepTime:)(?P<time>\d+)'
    pattern = re.compile(regstr)
    match = pattern.search(message.value['message'])
    if match:
        tablename = TableNameS.suibo_usr_logout + '_' + time.strftime(
            "%Y%m", time.localtime())
        insertsql = "insert into %s(date,uin,roomid,vid,time) values('%s',%d,%d,'%s',%d)"%\
           (tablename,match.group('date'),int(match.group('uin')),int(match.group('roomid')),"",int(match.group('time')))
        commentstr = u"房间号:%d,观看时长:%s" % (int(
            match.group('roomid')), GetTimeStr(match.group('time')))
        eventsql = EvensIDS.GetEventSql(EvensIDS.EVENT_LOGOUT_ID,
                                        int(match.group('uin')),
                                        match.group('date'), commentstr)
    sqllist['insert'] = insertsql
    sqllist['event'] = eventsql
    return sqllist
Exemplo n.º 9
0
def splitChangNick(message):
    sqllist = {}
    insertsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value) and ('requestData' in message.value['content']) and ('clientId' in message.value['content']['requestData']) \
     and ('nick' in message.value['content']['requestData']) and ('uin' in message.value['content']['requestData']) and ('userIp' in message.value['content']):
        cid = message.value['content']['requestData']['clientId']
        if (cid == 'quokka_ios') or (cid == 'quokka_android'):
            if message.value['eventid'] == 100102:
                tablename = "suibo_user_action_" + time.strftime(
                    "%Y%m", time.localtime())
                insertsql = "insert into %s(action_time,uin,flag,ip) values('%s',%d,%d,'%s') ON DUPLICATE KEY UPDATE ip='%s'" %\
                   (tablename,message.value['serTime'],int(message.value['content']['requestData']['uin']),6,message.value['content']['requestData']['nick'],message.value['content']['requestData']['nick'])
                commentstr = u"%s" % (
                    message.value['content']['requestData']['nick'])
                eventstr = EvensIDS.GetEventSql(
                    EvensIDS.EVENT_CHANGENAME_ID,
                    message.value['content']['requestData']['uin'],
                    message.value['serTime'], commentstr)
    sqllist['insert'] = insertsql
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 10
0
def splitWebBuy4100(message):
    sqllist = {}
    sqlstr = None
    eventsql = None
    eventstr = None
    if ('eventid' in message.value) and ('content' in message.value) and ('serTime' in message.value)  \
     and ('uin' in message.value) and ('orderInfo' in message.value['content']) and ('orderFrom' in message.value['content']) \
     and ('ordertype' in message.value['content']):
        if int(message.value['content']['ordertype']) != 1:
            return sqllist
        orderjson = json.JSONDecoder().decode(
            message.value['content']['orderInfo'])
        uin = int(message.value['uin'])
        date = message.value['serTime']
        date = date.replace('/', '-')
        money = 0
        npaytype = ''
        paytype = 0
        cid = message.value['content']['orderFrom']
        if cid == 'suibo':
            if ('orderMoney' in message.value['content']):
                money = message.value['content']['orderMoney']
            if ('orderNum' in orderjson):
                ordernum = orderjson['orderNum']
            if ('pay_type' in orderjson):
                npaytype = int(orderjson['pay_type'])
            if message.value['eventid'] == 410000:
                tablename = TableNameS.suibo_usr_buy + '_' + time.strftime(
                    "%Y%m", time.localtime())
                sqlstr = "insert into %s(date,uin,cash,ordernum,gid,paytype)" \
                   " values('%s',%d,%s,'%s','%s',%d)"%(tablename,date,uin,money,ordernum,orderjson['goods_id'],npaytype)
                commentstr = u"充值:%s元,方式:%s,订单号:%s" % (
                    money, PayTypeName.GetName(npaytype), ordernum)
                eventstr = EvensIDS.GetEventSql(EvensIDS.EVENT_BUY_ID, uin,
                                                date, commentstr)
    sqllist['insert'] = sqlstr
    sqllist['event'] = eventstr
    return sqllist
Exemplo n.º 11
0
def splitTerminateVideo(message):
    insertsql = None
    eventsql = None
    sqllist = {}
    global imquokkaDBsession
    regstr = '(?P<date>\d+/\d+/\d+\s+\d+:\d+:\d+)\|(?:\s+roomid=)(?P<roomid>\d+)(?:\s+update\s+user\s+vid\s+)(?P<vid>\d+_\d+)(?:\s+viewNum=)(?P<viewnum>\d+)(?:\s+viewTime=)(?P<viewtime>\d+)(?:\s+duration\s+)(?P<duration>\d+)'\
      '(?:\s+laudCount\s+)(?P<laudcount>\d+)(?:\s+vState\s+)(?P<vstate>\d+)(?:\s+webCurrNum=\d+\s+currNum=)(?P<currnum>\d+)'
    pattern = re.compile(regstr)
    match = pattern.search(message.value['message'])
    if match:
        if (int(match.group('vstate')) == 1) or (int(match.group('vstate'))
                                                 == 5):
            tablename = TableNameS.suibo_usr_closevideo + '_' + time.strftime(
                "%Y%m", time.localtime())
            insertsql = "insert into %s(date,vid,viewnum,laudcount,duration) values('%s','%s',%d,%d,%d)"%\
              (tablename,match.group('date'),match.group('vid'),int(match.group('viewnum')),int(match.group('laudcount')),int(match.group('duration')))

            rcvgiftsql = "select sum(money) AS money,count(1) AS num,srcUin" \
             " from %s WHERE  vid ='%s' GROUP BY srcUin" %(TableNameS.suibo_room_sendgift_info,match.group('vid'))
            retresult = session.excute(rcvgiftsql)
            recvemoney = 0
            recvcount = 0
            senderuincount = 0
            maxnumsenduin = 0
            maxmoneysenduin = 0
            maxnum = 0
            maxmoney = 0
            if retresult != None:
                senderuincount = retresult.rowcount
                if senderuincount > 0:
                    rows = retresult.fetchall()
                    for row in rows:
                        recvemoney = recvemoney + row['money']
                        recvcount = recvcount + row['num']
                        if maxnum < int(row['num']):
                            maxnum = int(row['num'])
                            maxnumsenduin = int(row['srcUin'])
                        if maxmoney < int(row['money']):
                            maxmoneysenduin = int(row['srcUin'])
                            maxmoney = int(row['money'])

            rewardcommentstr = ""
            if int(match.group('duration')) > 0:
                sumdatablename = TableNameS.bo_sumdayvid + '_' + time.strftime(
                    "%Y%m", time.localtime())
                rewartsql = "select amount,acash,kind from %s WHERE vid IN('%s') AND kind IN(10,186,187,188,189)" % (
                    sumdatablename, match.group('vid'))
                rewardret = imquokkaDBsession.excute(rewartsql)
                if rewardret != None:
                    rewardrows = rewardret.fetchall()
                    for rewardrow in rewardrows:
                        if int(rewardrow['kind']) == 186:
                            temstr = u'获得直播奖励%f人民币' % (rewardrow['amount'] /
                                                       float(100000))
                            rewardcommentstr = rewardcommentstr + temstr
                        elif int(int(rewardrow['kind']) == 189):
                            temstr = u'获得首播奖励%f人民币 ' % (rewardrow['amount'] /
                                                        float(100000))
                            rewardcommentstr = rewardcommentstr + temstr
                        elif int(int(rewardrow['kind']) == 188):
                            temstr = u'分享直播奖励%f人民币 ' % (rewardrow['amount'] /
                                                        float(100000))
                            rewardcommentstr = rewardcommentstr + temstr
                        elif int(int(rewardrow['kind']) == 187):
                            temstr = u'观看奖励%f人民币 ' % (rewardrow['amount'] /
                                                      float(100000))
                            rewardcommentstr = rewardcommentstr + temstr
                        elif int(int(rewardrow['kind']) == 10):
                            temstr = u'收礼奖励%f人民币 ' % (rewardrow['amount'] /
                                                      float(100000))
                            rewardcommentstr = rewardcommentstr + temstr
                    #print rewardcommentstr
            recvgiftcomment = u'总收礼次数:%d,总送礼人数:%d,总乐豆:%d(%f人民币) 送礼次数最多用户:%d %d次 送礼总金额最多用户:%d %d乐豆(%f人民币)' %\
                 (recvcount,senderuincount,recvemoney,float(recvemoney)/float(100000),maxnumsenduin,maxnum,maxmoneysenduin,maxmoney,float(maxmoney)/float(100000))
            commentstr = u"vid:%s,开播时长:%s,累积观看时长:%s,总观看人数:%d,总点赞数:%d %s %s" % \
               (match.group('vid'),GetTimeStr(match.group('duration')),GetTimeStr(match.group('viewtime')),\
               int(match.group('viewnum')),int(match.group('laudcount')),recvgiftcomment,rewardcommentstr)

            vidtemplst = match.group('vid').split('_')
            eventsql = EvensIDS.GetEventSql(EvensIDS.EVENT_TEMINATEVIDEO_ID,
                                            int(vidtemplst[0]),
                                            match.group('date'), commentstr)
    sqllist['insert'] = insertsql
    sqllist['event'] = eventsql
    return sqllist