def load_sites(filename): with open(filename) as json_file: data = json.load(json_file) for item in data["sites"]: adder = DBModelAdder() adder.start() name = item["name"] url = item["url"] meta = item["meta"] chat = item["chat"] api_name = item["api_name"] launch_date = datetime.utcfromtimestamp(int(item["launch_date"])) language = item["language"] site = Site.by_api_name(api_name) if site is not None: site.name = name site.url = url site.meta = meta site.chat = chat else: site = Site(name, url, meta, chat, api_name, launch_date, language) adder.add(site) adder.done()
def load_activities(filename): def load_coordinators(activity_id, coordinators): for coordinator in coordinators: adder = DBModelAdder() adder.start() user = User.by_account_id(coordinator) print "User %s" % str(user) if user is None: print "Coordinator (%s) for activity (%s) was not found. Try to update next time." % ( str(coordinator), str(activity_id)) continue if Activist.is_exist(adder, activity.id, user.id): print "Coordinator (%s) for activity (%s) already exists." % ( str(coordinator), str(activity_id)) adder.done() continue activist = Activist.coordinator(user.id, activity_id) adder.add(activist) adder.done() print "Added coordinator (%s) for activity (%s)." % ( str(coordinator), str(activity_id)) with open(filename) as json_file: data = json.load(json_file) for item in data["activities"]: activity_type = int(item["activity_type"]) site_api_name = item["site_api_name"] tab_name = item["tab_name"] title = item["title"] description = item["description"] meta_post_url = item["meta_post_url"] meta_post_title = item["meta_post_title"] chat_url = item["chat_url"] chat_name = item["chat_name"] coordinators = list() for coordinator in item["coordinators"]: coordinators.append(int(coordinator["account_id"])) site = Site.by_api_name(site_api_name) pg_session = db_session() activity = Activity.by_site_id_and_activity_type( site.id, activity_type) if activity is not None: print "Activity (%s;%s) found" % (str(activity_type), site_api_name) activity.title = title activity.tab_name = tab_name activity.description = description activity.meta_post_url = meta_post_url activity.meta_post_title = meta_post_title activity.chat_url = chat_url activity.chat_name = chat_name pg_session.add(activity) pg_session.commit() activity_id = activity.id pg_session.close() load_coordinators(activity_id, coordinators) continue activity = Activity(site.id, title, description, activity_type, meta_post_url, meta_post_title, chat_url, chat_name, tab_name) pg_session.add(activity) pg_session.commit() activity_id = activity.id pg_session.close() print "Activity (%s;%s) added with id %s" % ( str(activity_type), site_api_name, str(activity_id)) load_coordinators(activity_id, coordinators)