def save_keyword(self): try: if self.count(self.key_keyword): __body = {"$set": self.keyword} __condition = {'key': self.key_keyword} self.result['value'] = MongodbModel( collection='setting', body=__body, condition=__condition).update() self.result['status'] = True else: self.keyword["key"] = self.key_keyword __body = self.keyword self.result['value'] = MongodbModel(collection='setting', body=__body).insert() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save', data='collection > setting') return self.result
def get_all_by_category(self, access=None): try: if access is not None: r = MongodbModel(collection='agency', body={ 'category': self.category, "_id": { "$in": access } }).get_all() else: r = MongodbModel(collection='agency', body={ 'category': self.category }).get_all() for i in r: self.get_agency(i) self.result['value'] = self.value self.result['status'] = True return self.result except: Debug.get_exception(sub_system='agency', severity='error', tags='get_all_by_category') return self.result
def get_one(self): try: __body = {"_id": self.id} __key = { "_id": 1, "name": 1, "sections.section": 1, "sort": 1, "visit": 1, "reverse": 1, "sections._id": 1 } r = MongodbModel(collection='bolton', body=__body, key=__key).get_one_key() r['sort'] = r['sort'] if 'sort' in r.keys() else "user_choose" r['reverse'] = r['reverse'] if 'reverse' in r.keys() else True r['visit'] = r['visit'] if 'visit' in r.keys() else 0 self.result['value'] = r self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > bolton') self.result['value'] = [] return self.result
def save_menu_font(self): try: if self.count(self.key_font): __body = { "$set": { "menu": { "font": self.font, "size": self.size } } } __condition = {'key': self.key_font} self.result['value'] = MongodbModel( collection='setting', body=__body, condition=__condition).update() self.result['status'] = True else: __body = {"key": self.key_font, "menu": {"font": self.font}} self.result['value'] = MongodbModel(collection='setting', body=__body).insert() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save', data='collection > setting') return self.result
def insert_mongodb(body): MongodbModel(body=body, collection='news').insert() if MongodbModel(body={}, collection='news').count() > 60: n = MongodbModel(body={}, collection='news', sort="date", page=1, size=1, ascending=1).get_all_pagination() _id = 0 for i in n: _id = i['_id'] MongodbModel(body={"_id": _id}, collection='news').delete()
def get_max_char_summary(self): try: r = MongodbModel(collection='setting', body={ 'key': self.key_general }).get_one() if r and 'max_char_summary' in r.keys(): return r['max_char_summary'] return 150 except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_one', data='collection > setting') return 150
def get_all_child_user(self, access): try: r = MongodbModel(collection='subject', body={ "parent": self.parent, "_id": { "$in": access } }).get_all() if r: l = [ dict( id=i['_id'], name=i['name'], parent=i['parent'], ) for i in r ] self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all_parent', data='collection > subject') return self.result
def insert(self): try: if self.function == 'search': self.get_result() __body = { 'index': self.index, 'doc_type': self.doc_type, 'body': self.body, 'item_id': self.item_id, 'result': self._result, 'function': self.function, 'date': self.date, } self.result['value'] = str( MongodbModel(collection='elastic_statistic', body=__body).insert()) self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save', data='collection > elastic_statistic') return self.result
def insert(self, **body): try: __body = { "name": body['name'], "user": self.user, "tags": body['tags'], "all_words": body['all_words'], "without_words": body['without_words'], "each_words": body['each_words'], "exactly_word": body['exactly_word'], "period": body['period'], "start": body['start'], "end": body['end'], "agency": body['agency'] } self.result['value'] = MongodbModel( collection='user_search_pattern', body=__body).insert() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save_search_pattern', data='collection > user_search_pattern') return self.result
def get_all(self, _page=1, _size=20): try: __body = {} r = MongodbModel(collection='news_report_broken', body=__body, page=_page, size=_size).get_all_pagination() ls = [] for i in r: i['date'] = khayyam.JalaliDatetime( i['date']).strftime('%Y/%m/%d %H:%M:%S') try: i['full_name'] = UserModel( _id=i['user']).get_one()['value']['full_name'] except: i['full_name'] = '' ls.append(i) self.result['value'] = ls self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > news_report_broken') return self.result
def delete(self, kill=False): try: workers = RedisBaseModel(key=self.__key).get() try: workers = json.loads(workers) except: workers = [] if workers is None: workers = [] _workers = [] _w = None for w in workers: if w['_id'] != self.id: _workers.append(w) else: _w = w if _w is not None: _w['end'] = datetime.datetime.now() _w['start'] = d_parser.parse(_w['start']) _w['kill'] = kill MongodbModel(collection="worker", body=_w).insert() RedisBaseModel(key=self.__key, value=json.dumps(_workers)).set() return True except: Debug.get_exception(sub_system='admin', severity='error', tags='redis > set', data='') return False
def update(self): try: for i in self.sections: if i['_id'] == "None": i['_id'] = ObjectId() else: i['_id'] = ObjectId(i['_id']) __body = { "$set": { 'name': self.name, 'format': self.format, 'type': self.type, 'manual': self.manual, 'sections': self.sections } } __condition = {"_id": self.id} MongodbModel(collection='bolton', body=__body, condition=__condition).update() self.result['status'] = True return self.result except: print Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save', data='collection > bolton') return self.result
def get_all_detail(self): try: __body = {"user": self.user} __key = { "_id": 1, "name": 1, "sections.section": 1, "sections._id": 1 } r = MongodbModel(collection='bolton', body=__body, key=__key, sort="date").get_all_key_sort() if r: l = [] for i in r: l.append(self.get_bolton_detail(i)) self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > bolton') self.result['value'] = [] return self.result
def get_all_parent(self): try: r = MongodbModel(collection='group', body={ "parent": None }, sort="sort", ascending=1).get_all_sort() if r: l = [ dict(id=str(i['_id']), name=i['name'], sort=i['sort'] if "sort" in i.keys() else 0, parent=i['parent']) for i in r ] self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all_parent', data='collection > group') return self.result
def update_html_news_bolton(self, news): try: __body = { "$set": { "body": news['body'], "title": news['title'], "ro_title": news['ro_title'], "summary": news['summary'], "image": news['image'], "images": news['images'] } } __condition = {"_id": self.id} MongodbModel(collection='bolton_news', body=__body, condition=__condition).update() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > delete', data='collection > bolton_news') return self.result
def get_all_subject_user(self, subjects): try: r = MongodbModel(collection='subject', body={ "_id": { "$in": subjects }, "parent": None }, sort="sort", ascending=1).get_all_sort() if r: l = [ dict(id=i['_id'], name=i['name'], sort=i['sort'] if "sort" in i.keys() else 0, parent=i['parent']) for i in r ] self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='agency', severity='error', tags='get_all_agency') return self.result
def save_charts_content(self, **body): try: __body = {"$set": {"charts_content": { "content_format": body['content_format'], "importance_news": body['importance_news'], "performance_agency_number_news": body['based_count_news'], "general_statistics_agency": body['stats_news'], "daily_statistics_news": body['daily_news'], "important_topic_news": body['news_headlines'], "important_keyword_news": body['tags_news'], "reflecting_news": body['reflecting_news'], "importance_news_media_placement": body['importance_media'], "content_direction": body['positive_negative_orientation'], "agency_direction": body['orientation_news_sources'], "important_news_maker": body['important_news_makers'], "main_sources_news_1": body['main_sources_news_1'], "main_sources_news_2": body['main_sources_news_2'], }}} __condition = {'_id': ObjectId(self.id)} self.result['value'] = MongodbModel(collection='user_group', body=__body, condition=__condition).update() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > save_charts_content', data='collection > user_group') return self.result
def get_all(self): try: __body = { "user": self.user, } r = MongodbModel(collection='user_search_pattern', body=__body).get_all() ls = [] if r: for i in r: ls.append({ "name": i['name'], "tags": i['tags'], "all_words": i['all_words'], "without_words": i['without_words'], "each_words": i['each_words'], "exactly_word": i['exactly_word'], "period": i['period'], "start": i['start'], "end": i['end'], "agency": i['agency'] }) self.result['value'] = ls self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > user_search_pattern') return self.result
def save(self, **agency): try: __body = { 'name': agency['name'], 'base_link': agency['link'], 'color': agency['color'], 'category': agency['category'], 'direction': agency['direction'], 'rss_list': agency['rss_list'], 'comparatives': agency['comparatives'], 'type': agency['type_agency'], 'active': agency['active'], 'pic': agency['pic'], 'float_left': agency['float_left'], 'add_by_confirm': agency['add_by_confirm'], 'extract_image': agency['extract_image'], 'copy_key_words': agency['key_words'], 'link': agency['link'], 'links': agency['links'], } self.result['value'] = str( MongodbModel(collection='agency', body=__body).insert()) self.result['status'] = True return self.result except: Debug.get_exception(sub_system='agency', severity='error', tags='save') return self.result
def update(self, **agency): try: __body = { "$set": { 'name': agency['name'], 'base_link': agency['link'], 'color': agency['color'], 'category': agency['category'], 'direction': agency['direction'], 'active': agency['active'], 'pic': agency['pic'], 'float_left': agency['float_left'], 'add_by_confirm': agency['add_by_confirm'], 'extract_image': agency['extract_image'], 'copy_key_words': agency['key_words'], 'link': agency['link'], 'links': agency['links'], 'comparatives': agency['comparatives'], 'rss_list': agency['rss_list'] } } condition = {"_id": self.id} self.result['value'] = MongodbModel(collection='agency', body=__body, condition=condition).update() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='agency', severity='error', tags='save') return self.result
def get_all(self, __type): try: r = MongodbModel(collection='direction', body={ 'type': __type }, sort="sort", ascending=1).get_all_sort() if r: l = [ dict(id=i['_id'], name=i['name'], sort=i['sort'] if "sort" in i.keys() else 0, type=i['type']) for i in r ] self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > direction') return self.result
def get_one(self): try: __body = {"_id": self.id} __key = {"_id": 1, "name": 1, "sections.section": 1, "sort": 1, "visit": 1, "reverse": 1, "sections._id": 1} r = MongodbModel(collection='bolton', body=__body, key=__key).get_one_key() r['sort'] = r['sort'] if 'sort' in r.keys() else "user_choose" r['reverse'] = r['reverse'] if 'reverse' in r.keys() else True r['visit'] = r['visit'] if 'visit' in r.keys() else 0 self.result['value'] = r self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > bolton') self.result['value'] = [] return self.result
def is_exist(self): if self.title is not None: __body = { 'title': self.title, } if MongodbModel(collection='failed_brief', body=__body).count(): return True return False
def get_login(self): try: __key = {"user_login": 1, "count_online": 1} __body = {"_id": self.id} r = MongodbModel(collection='user', key=__key, body=__body).get_one() user_login = dict( user_login=r['user_login'] if 'user_login' in r.keys() else [], count_online=r['count_online'] if 'count_online' in r.keys() else 1 ) self.result['value'] = user_login self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > user') return self.result
def delete(self): try: self.result['value'] = MongodbModel(collection='category', body={'_id': self.id}).delete() self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > delete', data='collection > category') return self.result
def delete_queue(self, _type=None): body = { "news": self.id, } if _type == "COMPARATIVE": __collection = 'news_comparative_queue' else: __collection = 'news_queue' MongodbModel(collection=__collection, body=body).delete()
def count(): try: __body = {"code": -1} return MongodbModel(collection='news_queue', body=__body).count() except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > news_queue') return 0
def count_all(self): try: __body = {"type": self.type} r = MongodbModel(collection='feed_statistic', body=__body).count() self.result['value'] = r self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > count_all', data='collection > feed_statistic') return self.result
def group_by(col): try: body = [{ "$group": {"_id": "$" + col, "total": {"$sum": 1}} }] r = MongodbModel(collection='feed_statistic', body=body).aggregate() return [{col: i['_id'], 'total': i['total']} for i in r] except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > group_by', data='collection > feed_statistic') return []
def get_login(self): try: __key = {"user_login": 1, "count_online": 1} __body = {"_id": self.id} r = MongodbModel(collection='user', key=__key, body=__body).get_one() user_login = dict( user_login=r['user_login'] if 'user_login' in r.keys() else [], count_online=r['count_online'] if 'count_online' in r.keys() else 1) self.result['value'] = user_login self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > user') return self.result
def count(__key): try: body = {"key": __key} return MongodbModel(collection='setting', body=body).count() except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > count', data='collection > setting') return 0
def count_all(_type): try: return MongodbModel(collection="worker", body={ "type": _type }).count() except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_all', data='collection > group') return 0
def get_one(self): try: r = MongodbModel(collection='user_group', body={'_id': self.id}).get_one() if r: access_sources = r['access_sources'] if 'access_sources' in r.keys() else False if access_sources is not False: access_sources['agency'] = map(str, access_sources['agency']) access_sources['subject'] = map(str, access_sources['subject']) access_sources['geographic'] = map(str, access_sources['geographic']) l = dict( id=str(r['_id']), name=r['name'], search_pattern=r['search_pattern'] if 'search_pattern' in r.keys() else False, access_sources=access_sources, bolton_management=r['bolton_management'] if 'bolton_management' in r.keys() else False, charts_content=r['charts_content'] if 'charts_content' in r.keys() else False ) self.result['value'] = l self.result['status'] = True return self.result except: Debug.get_exception(sub_system='admin', severity='error', tags='mongodb > get_one', data='collection > user_group') return self.result