def update_email_time(cls, email, keyword, timestamp): """ update emailed_time : keyword must be utf8 """ with sessionCM() as session: account_setting = session.query(AccountSetting).filter_by(email=email, keyword=keyword).first() account_setting.emailed_time = timestamp session.commit()
def get_last_time(cls, email, keyword): """ return searched_time, emailed_time : email: AccountSetting email : keyword: key word of search news/weibo... ; must be utf8 : timestamp: timestamp of search result """ with sessionCM() as session: ret = session.query(AccountSetting).filter_by(email=email, keyword=keyword).first() return ret.searched_time, ret.emailed_time
def update_search_time(cls, email_list, keyword, timestamp): """ update searched_time :keyword must be utf8 """ with sessionCM() as session: for email in email_list: account_setting = session.query(AccountSetting).filter_by(email=email, keyword=keyword).first() account_setting.searched_time = timestamp session.commit()
def add_words(cls, email, add_word_list): """ add new search words for one email """ with sessionCM() as session: add_word_list = [str2utf8(word)[0] for word in add_word_list] ret = session.query(AccountSetting).filter_by(email=email)\ .filter(AccountSetting.keyword.in_(add_word_list)).all() exist_words = [str2utf8(a.keyword)[0] for a in ret] #if ret: # print exist_words, type(ret[0].keyword), type(ret[0].email) need_add_words = list(set(add_word_list) - set(exist_words)) #print need_add_words, add_word_list for word in need_add_words: new_setting = cls(email=email, keyword=word) session.add(new_setting) session.commit() return True
def get_avail_account(cls): with sessionCM() as session: return session.query(Account.email).filter_by(status=cls.AVAIL).all()
def create(cls, email, phone, passrd): new_account = cls(email, phone, passrd) with sessionCM() as session: session.add(new_account) session.commit()