Ejemplo n.º 1
0
 def treat_guess_number(self, number):
     guess_number_data = redis.get(get_dark_guess_number_session_name(self.chatbot_user_id))
     if guess_number_data is None:
         chatbots.get(self.chatbot_user_id).send_text('你要不先对我说:**游戏:猜数字:开启')
         return False
     data = eval(redis.get(get_dark_guess_number_session_name(self.chatbot_user_id)).decode())
     if number == '':
         self.display_guess_number(data)
         return True
     current_number = data['current_number']
     tried_record = data['tried_record']
     if len(number) != self.digit_count or not number.isdigit():
         chatbots.get(self.chatbot_user_id).send_text(
             '咱这个数字答案是{0}位数字,我寻思着你在这输的啥JB玩意儿呢!'.format(self.digit_count))
         return True
     a, b = self.calculate_guess_number(current_number, number)
     if a == self.digit_count:
         chatbots.get(self.chatbot_user_id).send_text(
             '哇你好屌,正确答案就是:「{0}」,秀秀秀!'.format(str(current_number)))
         user_login.get_luck_point_by_sender_id(50, self.user_id)
         return False
     tried_record.append({
         "try_number": number,
         "a": a,
         "b": b
     })
     data['try_time'] += 1
     if data['try_time'] >= self.turn:
         chatbots.get(self.chatbot_user_id).send_text(
             '游戏结束,正确答案是:「{0}」,小朋友你不行啊!'.format(str(current_number)))
         return False
     redis.setex(name=get_dark_guess_number_session_name(self.chatbot_user_id), time=3600,
                 value=str(data))
     self.display_guess_number(data)
     return True
Ejemplo n.º 2
0
 def get_listener_session_choices(self, user_id: str, chatbot_user_id: str):
     choices = redis.get(
         self.get_dark_listener_session_name(user_id, chatbot_user_id))
     if not choices:
         return None
     return eval(
         redis.get(
             self.get_dark_listener_session_name(user_id,
                                                 chatbot_user_id)).decode())
Ejemplo n.º 3
0
def get_maze_image(chatbotUserId):
    data = redis.get(get_dark_maze_session_name(chatbotUserId))
    if data is None:
        return
    data = eval(redis.get(get_dark_maze_session_name(chatbotUserId)).decode())
    return maze_painter.draw_maze(maze_data=data,
                                  horizon=sight,
                                  row_size=maze_row,
                                  col_size=maze_col)
Ejemplo n.º 4
0
 def start_guess_number(self):
     if redis.get(get_dark_guess_number_session_name(self.chatbot_user_id)) is None:
         chatbots.get(self.chatbot_user_id).send_text('正在生成数字......')
         guess_number_session_data = self.build_guess_number()
         redis.setex(name=get_dark_guess_number_session_name(self.chatbot_user_id), time=3600,
                     value=str(guess_number_session_data))
     self.display_guess_number(
         data=eval(redis.get(get_dark_guess_number_session_name(self.chatbot_user_id)).decode()))
     number = ''
     while self.treat_guess_number(number):
         number = self.listener.ask(guess_number_operator, '输入任意数字')
     shut_down_guess_number(self.chatbot_user_id)
Ejemplo n.º 5
0
 def treat_maze(self, steps):
     maze_data = redis.get(get_dark_maze_session_name(self.chatbot_user_id))
     if maze_data is None:
         chatbots.get(self.chatbot_user_id).send_text('你要不先对我说:**游戏:迷宫:开启')
         return False
     data = eval(
         redis.get(get_dark_maze_session_name(
             self.chatbot_user_id)).decode())
     preview_location = data['player']['location']
     map_location_data = data['map'][preview_location[0]][
         preview_location[1]]
     for step in steps:
         if step == 'a':
             if map_location_data[0] == 0 or preview_location[1] == 0:
                 self.display_maze(data, message='那是一条死路诶...')
                 return True
             preview_location[1] = preview_location[1] - 1
             map_location_data = data['map'][preview_location[0]][
                 preview_location[1]]
         elif step == 'w':
             if map_location_data[1] == 0 or preview_location[0] == 0:
                 self.display_maze(data, message='那是一条死路诶...')
                 return True
             preview_location[0] = preview_location[0] - 1
             map_location_data = data['map'][preview_location[0]][
                 preview_location[1]]
         elif step == 'd':
             if map_location_data[2] == 0 or preview_location[
                     1] == self.maze_col - 1:
                 self.display_maze(data, message='那是一条死路诶...')
                 return True
             preview_location[1] = preview_location[1] + 1
             map_location_data = data['map'][preview_location[0]][
                 preview_location[1]]
         elif step == 's':
             if map_location_data[3] == 0 or preview_location[
                     0] == self.maze_row - 1:
                 self.display_maze(data, message='那是一条死路诶...')
                 return True
             preview_location[0] = preview_location[0] + 1
             map_location_data = data['map'][preview_location[0]][
                 preview_location[1]]
         elif step == ' ':
             continue
     if preview_location[1] == self.maze_col - 1 and preview_location[
             0] == self.maze_row - 1:
         chatbots.get(self.chatbot_user_id).send_text('卧槽牛逼啊!这你都走出来了!')
         user_login.rewards(50, self.user_id,
                            chatbots.get(self.chatbot_user_id), '')
         return False
     self.display_maze(data, message='接下来是...')
     return True
Ejemplo n.º 6
0
 def check_lock(self, sender_id):
     if redis.get(
             self.get_sign_in_lock_name(sender_id=sender_id)) is not None:
         redis.delete(self.get_sign_in_lock_name(sender_id=sender_id))
         return True
     else:
         return False
Ejemplo n.º 7
0
def route_index():
  is_mobile = True if "Mobi" in request.headers.get('User-Agent') else False
  current_term = json.loads(redis.get('current_term'))
  season = ('Autumn', 'Spring', 'Summer')[int(current_term[1])-1]
  return render_template('index.html',
                         is_mobile=is_mobile,
                         season=season,
                         year=current_term[0])
Ejemplo n.º 8
0
def get_type(slug):
    if not slug:
        return None
    src = redis.get("n:type:" + slug)
    if src is None:
        return None
    data = json.loads(src)
    return data
Ejemplo n.º 9
0
 def multiple_choice(self, request_json):
     redis_data_str = redis.get(
         self.get_dark_quiz_mc_session_name(request_json['chatbotUserId']))
     if redis_data_str is None:
         data = get_multiple_choice()
         redis_data_str = self.put_into_redis(request_json,
                                              data['newslist'][0], 1)
     redis_data = eval(redis_data_str)
     self.display_mc_quiz(redis_data, request_json)
Ejemplo n.º 10
0
 def true_or_false(self, request_json):
     redis_data_str = redis.get(
         self.get_dark_quiz_tf_session_name(request_json['chatbotUserId']))
     if redis_data_str is None:
         data = get_true_or_false()
         redis_data_str = self.put_into_redis(request_json,
                                              data['newslist'][0], 0)
     redis_data = eval(redis_data_str)
     self.display_tf_quiz(redis_data, request_json)
Ejemplo n.º 11
0
def get_types():
    result = {
        'type': get_type_type()
    }
    for slug in redis.smembers('types'):
        src = redis.get('n:type:' + slug)
        if src is None:
            redis.srem('types', slug)
        else:
            result[slug] = json.loads(src)
    return result
Ejemplo n.º 12
0
 def start_dark_maze(self):
     if redis.get(get_dark_maze_session_name(self.chatbot_user_id)) is None:
         chatbots.get(self.chatbot_user_id).send_text('正在生成迷宫......')
         maze_session_data = self.build_maze()
         chatbots.get(self.chatbot_user_id).send_text('正在生成人物......')
         redis.setex(name=get_dark_maze_session_name(self.chatbot_user_id),
                     time=3600,
                     value=str(maze_session_data))
     self.listener.current_answer = ' '
     while self.treat_maze(self.listener.current_answer):
         self.listener.ask(maze_operator, '输入wsad移动')
     shut_down_dark_maze(self.chatbot_user_id)
Ejemplo n.º 13
0
 def get_luck_point_by_sender_id(self, sender_id: str):
     if sender_id.startswith('/dark_buddy#'):
         return {
             'user_id': -1,
             'value':
             int(redis.get(self.get_temp_user_money_name(sender_id)))
         }
     founded_user = select_by_senderId(sender_id)
     number = select_by_statusId_and_userId(2, founded_user["id"]).value
     if not number:
         number = 0
     else:
         number = int(number)
     return {'user_id': founded_user["id"], 'value': number}
Ejemplo n.º 14
0
def get(slug):
    slug = to_slug(slug)
    if ':' in slug:
        left, _, right = slug.partition(':')
        if left == 'type':
            return get_type(right)
    if slug == 'type':
        return get_type(slug)
    src = redis.get("n:" + slug)
    if src is None:
        return None
    node = json.loads(src)
    if not 'type' in node:
        node['type'] = 'document'
    return node
Ejemplo n.º 15
0
 def get_game_session_data(self, request_json):
     game_session_data = redis.get(
         self.get_dark_spy_session_name(request_json['chatbotUserId']))
     if game_session_data is None:
         game_session_data = DarkSpyGameSessionData()
         game_session_data = json.dumps(game_session_data,
                                        cls=DarkSpyGameSessionDataEncoder,
                                        indent=4)
         redis.setex(name=self.get_dark_spy_session_name(
             request_json['chatbotUserId']),
                     time=3600,
                     value=game_session_data)
         # 参考 DarkSpyGameSessionData.decode(eval(json.dumps(game_session_data, cls=DarkSpyGameSessionDataEncoder, indent=4)))
     game_session_data = DarkSpyGameSessionData.decode(
         eval(game_session_data))
     return game_session_data
Ejemplo n.º 16
0
 def treat_dark_quiz(self, answer, type, request_json):
     redis_data_str = redis.get(
         self.get_session_name_by_type(request_json['chatbotUserId'],
                                       int(type)))
     if redis_data_str is None:
         return
     redis_data = eval(redis_data_str)
     if redis_data['answer'] == int(answer):
         chatbots.get(request_json['chatbotUserId']).send_action_card(
             ActionCard(title="暗黑答题",
                        text="### 回答正确!6六6!",
                        btns=[
                            CardItem(title="再来一题是非题",
                                     url="**游戏:暗黑答题:是非题(10金币)"),
                            CardItem(title="再来一题单选题",
                                     url="**游戏:暗黑答题:单选题(20金币)")
                        ]))
         if type == '0':
             user_login.rewards_to_sender_id(10, request_json)
         if type == '1':
             user_login.rewards_to_sender_id(20, request_json)
     else:
         chatbots.get(request_json['chatbotUserId']).send_action_card(
             ActionCard(title="暗黑答题",
                        text="### GG!回答错误!正确答案是「{0}」,相关信息:{1}".format(
                            redis_data['answer_str'],
                            redis_data['analytic']),
                        btns=[
                            CardItem(title="再来一题是非题",
                                     url="**游戏:暗黑答题:是非题(10金币)"),
                            CardItem(title="再来一题单选题",
                                     url="**游戏:暗黑答题:单选题(20金币)")
                        ]))
         user_login.rewards_to_sender_id(-5, request_json)
     redis.delete(
         self.get_session_name_by_type(request_json['chatbotUserId'],
                                       int(type)))
Ejemplo n.º 17
0
def route_module_list():
  return jsonify(modules=json.loads(redis.get('module_list')))
Ejemplo n.º 18
0
 def get_image_by_uuid(self, uuid):
     bytes_image = redis.get(self.get_redis_key(uuid))
     if bytes_image is None:
         return ''
     bytes_image = self.base64_to_image(bytes_image.decode())
     return bytes_image
Ejemplo n.º 19
0
def update_all_events():
  module_ids = [m['id'] for m in json.loads(redis.get('module_list'))]
  for module_id in module_ids:
    update_events_by_id(module_id)
Ejemplo n.º 20
0
def get_tt_url():
  return form_tt_url(*json.loads(redis.get('current_term')))
Ejemplo n.º 21
0
def delete_old_modules():
  list_module_ids = [m['id'] for m in json.loads(redis.get('module_list'))]
  redis_keys = redis.keys()
  for key in redis_keys:
    if key not in list_module_ids and re.match("^m[0-9]+", key):
      redis.delete(key)
Ejemplo n.º 22
0
 def get_image(self):
     bytes_image = redis.get(self.get_redis_key())
     if bytes_image is None:
         return ''
     image = image_factory.base64_to_image(bytes_image.decode())
     return image
Ejemplo n.º 23
0
from config import redis


def _encode(value):
    if type(value) is bytes:
        return str(value, 'utf-8')
    return value


host = 'game.weixin.qq.com'
accept = '*/*'
accept_lang = 'zh-cn'
referer = 'https://game.weixin.qq.com/cgi-bin/h5/static/profile_v1/index.html?t=g1NlbysGi4KDI5aTA0V-65f9QlaA&ssid=2902&abt=27'
accept_encoding = 'br, gzip, deflate'

ua = _encode(redis.srandmember('wechat_game_uas', 1)[0])
key = _encode(redis.get('wechat_game_key'))
pass_ticket = _encode(redis.get('wechat_game_pass_ticket'))
uin = _encode('MTEyNDEzMjI4MQ%3D%3D')
pgv_pvid = _encode('971741250')
sd_cookie_crttime = _encode('1530872150306')
sd_userid = _encode('34911530872150306')

Res_UserInfo_Dir = '/Users/emrys/Documents/Moba/MobaUserInfo'
Res_Battle_List_Dir = '/Users/emrys/Documents/Moba/MobaBattleList'
Res_Battle_Detail_Dir = '/Users/emrys/Documents/Moba/MobaBattleDetail'
Res_Game_Index_Dir = '/Users/emrys/Documents/Moba/MobaUserIndex'
Ejemplo n.º 24
0
 def get_words(self):
     words = redis.get("tianhao:dark_buddy:dark_ji_word_cloud_words")
     if words is None:
         return ""
     return words.decode()
Ejemplo n.º 25
0
 def init_luck_point_4_temp_user(self, count, sender_id):
     if redis.get(self.get_temp_user_money_name(sender_id)):
         pass
     redis.setex(name=self.get_temp_user_money_name(sender_id),
                 time=3600,
                 value=count)
Ejemplo n.º 26
0
if command == 'runserver':
    from wsgi import app
    app.run(debug = True)

elif command == 'dumpdata':
    try:
        path = sys.argv[2]
    except:
        usage()
    
    with open(path, "w") as o:
        o.write("[\n  ")
        first = True
        for key in redis.keys("n:*"):
            try:
                src = redis.get(key)
            except:
                continue
            if not first:
                o.write(",\n  ")
            o.write(src)
            first = False
        o.write("\n]")
    
    print "Dumped data to %s" % path

elif command == "loaddata":
    try:
        path = sys.argv[2]
    except:
        usage()
Ejemplo n.º 27
0
import requests
import simplejson

from config import redis

_ip_pool = '_ip_pool'
_deprecate_ip_pool = '_deprecate_ip_pool'

_ip_pool_url = 'http://dev.kdlapi.com/api/getproxy/'
orderid = str(redis.get('_ip_pool_orderid'), 'utf-8')
dedup = 1
_key_dedup = 'dedup'
pool_params = {
    'orderid': orderid,
    'num': 1000,
    'b_pcchrome': 1,
    'b_pcie': 1,
    'b_pcff': 1,
    'b_android': 1,
    'b_iphone': 1,
    'protocol': 1,
    'method': 2,
    'an_an': 1,
    'an_ha': 1,
    'sp1': 1,
    'sp2': 1,
    'quality': 1,
    'sort': 1,
    'format': 'json',
    'sep': 1,
}