libs.functions.tools.recalculation

libs/functions/tools/recalculation.py

 1"""
 2libs/functions/tools/recalculation.py
 3"""
 4
 5import logging
 6from contextlib import closing
 7
 8import libs.global_value as g
 9from cls.score import GameResult
10from libs.data import modify
11from libs.utils import dbutil
12
13
14def main():
15    """ポイント再計算"""
16    modify.db_backup()
17    logging.info("rank_point=%s, draw_split= %s", g.cfg.mahjong.rank_point, g.cfg.mahjong.draw_split)
18    with closing(dbutil.connection(g.cfg.setting.database_file)) as cur:
19        rows = cur.execute(
20            """
21            select
22                ts,
23                p1_name, p1_str,
24                p2_name, p2_str,
25                p3_name, p3_str,
26                p4_name, p4_str,
27                comment
28                from result where rule_version=?;
29            """,
30            (g.cfg.mahjong.rule_version,)
31        )
32        count = 0
33
34        for row in rows:
35            result = GameResult(**dict(row), **g.cfg.mahjong.to_dict())  # 現行ルールで上書き
36            cur.execute(dbutil.query("RESULT_UPDATE"), result.to_dict())
37            count += 1
38
39        cur.commit()
40    logging.info("recalculated: %s", count)
def main():
15def main():
16    """ポイント再計算"""
17    modify.db_backup()
18    logging.info("rank_point=%s, draw_split= %s", g.cfg.mahjong.rank_point, g.cfg.mahjong.draw_split)
19    with closing(dbutil.connection(g.cfg.setting.database_file)) as cur:
20        rows = cur.execute(
21            """
22            select
23                ts,
24                p1_name, p1_str,
25                p2_name, p2_str,
26                p3_name, p3_str,
27                p4_name, p4_str,
28                comment
29                from result where rule_version=?;
30            """,
31            (g.cfg.mahjong.rule_version,)
32        )
33        count = 0
34
35        for row in rows:
36            result = GameResult(**dict(row), **g.cfg.mahjong.to_dict())  # 現行ルールで上書き
37            cur.execute(dbutil.query("RESULT_UPDATE"), result.to_dict())
38            count += 1
39
40        cur.commit()
41    logging.info("recalculated: %s", count)

ポイント再計算