62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
|
from defs.gacha.utils import init_db
|
||
|
|
||
|
DB = init_db("temp", 'gacha.sqlite')
|
||
|
|
||
|
|
||
|
class wish_user:
|
||
|
def __init__(self, uid, gacha_type):
|
||
|
self.uid = uid
|
||
|
self.gacha_type = gacha_type
|
||
|
self._get_data()
|
||
|
|
||
|
@property
|
||
|
def count_5(self) -> int:
|
||
|
return self.get_prob_info().get('count_5', 1)
|
||
|
|
||
|
@property
|
||
|
def count_4(self) -> int:
|
||
|
return self.get_prob_info().get('count_4', 1)
|
||
|
|
||
|
@count_5.setter
|
||
|
def count_5(self, count):
|
||
|
self.update_prob_info({'count_5': count})
|
||
|
|
||
|
@count_4.setter
|
||
|
def count_4(self, count):
|
||
|
self.update_prob_info({'count_4': count})
|
||
|
|
||
|
@property
|
||
|
def is_up(self):
|
||
|
return self.get_prob_info().get('is_up', False)
|
||
|
|
||
|
@is_up.setter
|
||
|
def is_up(self, up):
|
||
|
self.update_prob_info({'is_up': up})
|
||
|
|
||
|
def inc_count(self, rank):
|
||
|
key = 'count_' + str(rank)
|
||
|
inc = self.get_prob_info().get(key, 1)
|
||
|
self.update_prob_info({key: inc + 1})
|
||
|
|
||
|
def _get_data(self):
|
||
|
self.data = DB.get('%s_%s' % (self.uid, self.gacha_type), {})
|
||
|
|
||
|
def save(self):
|
||
|
DB['%s_%s' % (self.uid, self.gacha_type)] = self.data
|
||
|
|
||
|
def get_prob_info(self):
|
||
|
self._get_data()
|
||
|
return self.data.get('prob_info', {})
|
||
|
|
||
|
def set_prob_info(self, obj):
|
||
|
if self.data.get('prob_info'):
|
||
|
self.data['prob_info'].update(obj)
|
||
|
else:
|
||
|
self.data['prob_info'] = obj
|
||
|
|
||
|
def update_prob_info(self, obj):
|
||
|
prob_info = self.get_prob_info()
|
||
|
prob_info.update(obj)
|
||
|
self.set_prob_info(prob_info)
|
||
|
self.save()
|