def main(): soup_stat_cfg = BeautifulSoup(open(share.STATS_CFG_PATH, encoding='UTF-8').read(), 'html.parser') stat_list = share.get_field_list(soup_stat_cfg.find_all('listitem'), share.STAT_FIELDS) for stat in stat_list: collection.find_one_and_update({'uuid': stat['Id'].lower()}, {'$set': { 'week_up': stat['WeekUp'], 'week_down': stat['WeekDown'], 'month_up': stat['MonthUp'], 'month_down': stat['MonthDown'], }}) client.close()
def main(): soup_userdb_cfg = BeautifulSoup(open(share.USERDB_CFG_PATH, encoding='UTF-8').read(), 'html.parser') soup_winroute_cfg = BeautifulSoup(open(share.WINROUTE_CFG_PATH, encoding='UTF-8').read(), 'html.parser') userdb_list = share.get_field_list(soup_userdb_cfg.find('list', attrs={'name': 'UsersData'}).find_all('listitem'), share.USERDB_FIELDS) winroute_list = share.get_field_list(soup_winroute_cfg.find('list', attrs={'name': 'AutoLogins'}).find_all('listitem'), share.WINROUTE_FIELDS) for user in userdb_list: dct = { 'uuid': user['UUID'].lower(), 'name': user['Name'].lower(), 'week_up': None, 'week_down': None, 'month_up': None, 'month_down': None, 'quota_week': user['QuotaWeek'], 'quota_month': user['QuotaMonth'], 'ip': [], } for e in filter(lambda x: user['UUID'].lower() == x['UUID'].lower(), winroute_list): dct['ip'].append(e['IpAddr']) if not dct['ip']: continue doc = collection.find_one_and_update({'uuid': dct['uuid']}, {'$set': { 'uuid': dct['uuid'], 'name': dct['name'], 'quota_week': dct['quota_week'], 'quota_month': dct['quota_month'], }}) if doc is None: collection.insert(dct) client.close()