当前位置: 首页>>代码示例>>Python>>正文


Python HTMLParser.get_starttag_text方法代码示例

本文整理汇总了Python中html.parser.HTMLParser.get_starttag_text方法的典型用法代码示例。如果您正苦于以下问题:Python HTMLParser.get_starttag_text方法的具体用法?Python HTMLParser.get_starttag_text怎么用?Python HTMLParser.get_starttag_text使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在html.parser.HTMLParser的用法示例。


在下文中一共展示了HTMLParser.get_starttag_text方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: submit

# 需要导入模块: from html.parser import HTMLParser [as 别名]
# 或者: from html.parser.HTMLParser import get_starttag_text [as 别名]
def submit(request):
    ret = {}
    has_html = False

    if request.POST:
        d = request.POST.dict()
        name = d.get("name", None)
        secret_key = d.get("secret_key", None)

        if name and is_user_data_valid(name):
            parser = HTMLParser()
            parser.feed(name)
            parser.close()
            if parser.get_starttag_text():
                ret["flag"] = FLAGS["scoreboard_hacking"][0]
                has_html = True

        if name and secret_key and not has_html:
            if not is_user_data_valid(name, data_type=DataType.SHORT_NAME):
                ret["error"] = "Too much data"
            elif not is_user_data_valid(secret_key, data_type=DataType.PASSWORD):
                ret["error"] = "Too much data"
            elif get_leader(name.strip().lower()):
                # If they also proved the correct secret key, update that entry in the database
                secret_key = hashlib.sha512(secret_key.encode('utf-8')).hexdigest()
                leader = get_leader(name.strip().lower(), secret_key)
                if leader:
                    session = get_unauth_session(request)
                    if not session.lifetime_hacker_bucks:
                        ret["error"] = "What makes you think you belong on the leaderboard?"
                    else:
                        # Update the leader with the new info
                        # Create a set of claimed flags and combine the loaded leader with the current session
                        leader_claimed_flags = json.loads(leader.claimed_flags)
                        claimed_flags = list(set(leader_claimed_flags + session.claimed_flags))

                        leader.lifetime_hacker_bucks = calc_lifetime_hacker_bucks_from_claimed_flags(claimed_flags)
                        leader.num_flags_found = len(claimed_flags)
                        leader.claimed_flags = json.dumps(claimed_flags)

                        # This will overwrite their hacker bucks. Only an issue if they didn't load first
                        leader.hacker_bucks = session.hacker_bucks
                        leader.remote_ip = session.remote_ip
                        leader.percent_complete = int((leader.num_flags_found) / len(FLAGS) * 100)
                        leader.playtime = str(timezone.now() - leader.session_creation_time)

                        leader_purchased_challenges = json.loads(leader.purchased_challenges)
                        for challenge_id, challenge in session.challenges.items():
                            if challenge.purchased:
                                leader_purchased_challenges.append(challenge_id)
                        leader_purchased_challenges = list(set(leader_purchased_challenges))
                        leader.purchased_challenges = json.dumps(leader_purchased_challenges)

                        # Update the changes
                        leader.save()
                else:
                    ret["error"] = "Already a leader with that name. To update, provide the correct password."
            else:
                name = name.strip()
                session = get_unauth_session(request)
                if not session.lifetime_hacker_bucks:
                    ret["error"] = "What makes you think you belong on the leaderboard?"
                else:
                    leader = LeaderboardEntry()
                    leader.lifetime_hacker_bucks = session.lifetime_hacker_bucks
                    leader.num_flags_found = len(session.claimed_flags)
                    leader.claimed_flags = json.dumps(session.claimed_flags)
                    leader.hacker_bucks = session.hacker_bucks
                    leader.percent_complete = int((leader.num_flags_found / len(FLAGS)) * 100)
                    leader.name = name.lower()
                    leader.display_name = name
                    leader.remote_ip = session.remote_ip
                    leader.session_creation_time = session.creation_time
                    leader.secret_key = hashlib.sha512(secret_key.encode('utf-8')).hexdigest()
                    leader.playtime = str(timezone.now() - session.creation_time)

                    # Get the list of purchased challenge IDs
                    purchased_challenges = []
                    for challenge_id, challenge in session.challenges.items():
                        if challenge.purchased:
                            purchased_challenges.append(challenge_id)
                    leader.purchased_challenges = json.dumps(purchased_challenges)

                    leader.save()
        elif not has_html:
            ret["error"] = "No name/secret key provided for leaderboard entry"

    return HttpResponse(json.dumps(ret))
开发者ID:vix597,项目名称:Ru5tedBun1ons,代码行数:90,代码来源:views.py


注:本文中的html.parser.HTMLParser.get_starttag_text方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。