新网站微信公众号周年活动抽奖代码公示

# 新网站一周年活动抽奖代码

import hashlib

# TODO: 2023年6月30日上证指数收盘价格
sse_index = "3202.06"
lucky_number = int(sse_index.split(".")[1])
print(f"630上证指数收盘价:{sse_index} 中奖参考数:{lucky_number}(昵称Hash转整数最后2位越接近该值排名越高)")

# TODO: 符合条件的参与用户微信昵称和参与时间
users = [
    {"nickname": "用户昵称", "time": 202306270819}
]


# 对符合条件的用户进行抽奖排名
lottery_users = []
for user in users:
    nickname = user["nickname"]
    time = user["time"]
    nickname_hash = hashlib.sha1(nickname.encode("utf-8")).hexdigest()
    hash_number = int(nickname_hash, 16)
    user_number = hash_number % (10**2)
    lottery_users.append(
        {
            "nickname": nickname,
            "time": time,
            "nickname_hash": nickname_hash,
            "hash_number": hash_number,
            "user_number": user_number,
        }
    )
lottery_users.sort(key=lambda x: (abs(x["user_number"] - lucky_number), x["time"]))

# 输出排名结果表格
table_header = "| 排名 | 微信昵称 | 昵称Hash转整数最后2位数 | 昵称Hash对应的整数 | 昵称Hash | 参与时间 |\n| --- | --- | --- | --- | --- | --- |"
sorted_table_rows = []
for rank, row in enumerate(lottery_users, start=1):
    sorted_table_rows.append(
        f"| {rank} | {row['nickname']} | {row['user_number']} | {row['hash_number']} | {row['nickname_hash']} | {row['time']} |"
    )
print("\n----------\n\n所有符合抽奖条件的用户列表如下,本次活动抽取前5名作为中奖用户:\n")
markdown_table = "{header}\n{rows}".format(header=table_header, rows="\n".join(sorted_table_rows))
print(markdown_table)

使用昵称抽奖可能出现相同昵称的情况,简单起见,我们采用人工鉴别处理。


也可以看看


全国大流量卡免费领

19元月租ㆍ超值优惠ㆍ长期套餐ㆍ免费包邮ㆍ官方正品