Ejemplo n.º 1
0
    def web_list(cls, req):
        try:
            ret = {}
            page = 1
            page_size = ModelSetting.get_int('item_per_page')
            job_id = ''
            search = ''
            category = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            agent_type = req.form['agent_type'] if 'agent_type' in req.form else 'all'

            query = cls.make_query(search=search, agent_type=agent_type)
            count = query.count()
            query = query.limit(page_size).offset((page-1)*page_size)
            logger.debug('cls count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 2
0
    def filelist(req):
        try:
            ret = {}
            page = 1
            page_size = int(
                db.session.query(ModelSetting).filter_by(
                    key='web_page_size').first().value)
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            query = db.session.query(ModelGDriveScanFile)
            if search != '':
                query = query.filter(
                    ModelGDriveScanFile.name.like('%' + search + '%'))
            count = query.count()
            query = (query.order_by(desc(
                ModelGDriveScanFile.id)).limit(page_size).offset(
                    (page - 1) * page_size))
            logger.debug('ModelGDriveScanFile count:%s', count)

            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            #ret['paging'] = paging
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            #ret['plex_server_hash'] = plex.Logic.get_server_hash()
            return ret
        except Exception as exception:
            logger.debug('Exception:%s', exception)
            logger.debug(traceback.format_exc())
Ejemplo n.º 3
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = ModelSetting.get_int('web_page_size')
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            option = req.form['option'] if 'option' in req.form else 'all'
            order = req.form['order'] if 'order' in req.form else 'desc'

            query = SubModelItem.make_query(search=search,
                                            option=option,
                                            order=order)
            count = query.count()
            query = query.limit(page_size).offset((page - 1) * page_size)
            logger.debug('SubModelItem count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 4
0
    def web_list(cls, req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            option = req.form['option']
            order = req.form['order'] if 'order' in req.form else 'desc'

            query = cls.make_query(search=search, option=option, order=order)
            count = query.count()
            query = query.limit(page_size).offset((page - 1) * page_size)
            logger.debug('cls count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            ModelSetting.set('jav_censored_last_list_option',
                             '%s|%s|%s|%s' % (option, order, search, page))
            return ret
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 5
0
 def item_list(req):
     try:
         ret = {}
         page = 1
         page_size = 30
         job_id = ''
         search = ''
         if 'page' in req.form:
             page = int(req.form['page'])
         if 'search_word' in req.form:
             search = req.form['search_word']
         query = db.session.query(ModelManamoaItem)
         if search != '':
             query = query.filter(
                 ModelManamoaItem.title.like('%' + search + '%'))
         query = query.order_by(desc(ModelManamoaItem.id))
         count = query.count()
         query = query.limit(page_size).offset((page - 1) * page_size)
         lists = query.all()
         ret['list'] = [item.as_dict() for item in lists]
         ret['paging'] = Util.get_paging_info(count, page, page_size)
         return ret
     except Exception, e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
Ejemplo n.º 6
0
 def web_list(cls, module_name, req):
     try:
         ret = {}
         page = 1
         page_size = ModelSetting.get_int('item_per_page')
         job_id = ''
         search = ''
         category = ''
         genre = 'all'
         if 'page' in req.form:
             page = int(req.form['page'])
         if 'search_word' in req.form:
             search = req.form['search_word']
         if 'genre' in req.form:
             genre = req.form['genre']
         rule_name = req.form['category'] if 'category' in req.form else 'all'
         status_option = req.form['status_option'] if 'status_option' in req.form else 'all'
         query = cls.make_query(module_name=module_name, genre=genre, search=search, rule_name=rule_name, status_option=status_option)
         count = query.count()
         query = query.limit(page_size).offset((page-1)*page_size)
         logger.debug('cls count:%s', count)
         lists = query.all()
         ret['list'] = [item.as_dict() for item in lists]
         ret['paging'] = Util.get_paging_info(count, page, page_size)
         return ret
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
Ejemplo n.º 7
0
    def db_list(req):
        try:
            ret = {}
            page = 1
            page_size = 50
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']

            query = db.session.query(ModelDaumTVShow)
            if search != '':
                query = query.filter(
                    ModelDaumTVShow.search_title.like('%' +
                                                      search.replace(' ', '') +
                                                      '%'))
            count = query.count()
            query = (query.order_by(
                (ModelDaumTVShow.title)).limit(page_size).offset(
                    (page - 1) * page_size))
            logger.debug('ModelDaumTVShow count:%s', count)

            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            #ret['paging'] = paging
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as exception:
            logger.debug('Exception:%s', exception)
            logger.debug(traceback.format_exc())
Ejemplo n.º 8
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            content_type = 'all'
            if 'type' in req.form:
                content_type = req.form['type']

            query = ModelOffcloud2Cache.make_query(content_type=content_type,
                                                   search=search)
            count = query.count()
            query = (query.order_by(desc(
                ModelOffcloud2Cache.id)).limit(page_size).offset(
                    (page - 1) * page_size))
            logger.debug('ModelOffcloud2Cache count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.debug('Exception:%s', e)
            logger.debug(traceback.format_exc())
Ejemplo n.º 9
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = ModelSetting.get_int('web_page_size')
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            request_type = req.form['request_type']
            program_type = req.form['program_type']
            order = req.form['order'] if 'order' in req.form else 'desc'

            query = ModelDownloaderItem.make_query(search=search, request_type=request_type, program_type=program_type, order=order)
            count = query.count()
            query = query.limit(page_size).offset((page-1)*page_size)
            logger.debug('ModelDownloaderItem count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception, e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 10
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            rss_select = 'all'
            if 'rss_select' in req.form:
                rss_select = req.form['rss_select']

            option = 'all'
            if 'option' in req.form:
                option = req.form['option']

            query = ModelFeed.make_query(rss_id=rss_select,
                                         option=option,
                                         search=search)

            count = query.count()
            query = (query.order_by(desc(
                ModelFeed.id)).limit(page_size).offset((page - 1) * page_size))
            logger.debug('ModelFeed count:%s', count)

            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.debug('Exception:%s', e)
            logger.debug(traceback.format_exc())
Ejemplo n.º 11
0
    def item_list(req):
        try:
            logger.debug(req.form)
            ret = {}
            page = 1
            page_size = 30
            search = ''

            if 'sheet_id' in req.form: sheet_id = req.form['sheet_id']
            if 'page' in req.form: page = int(req.form['page'])
            if 'search_word' in req.form: search = req.form['search_word']
            if 'option' in req.form: option = req.form['option']
            if 'copied' in req.form: copied = req.form['copied']
            order = req.form['order'] if 'order' in req.form else 'desc'

            query = ListModelItem.make_query(sheet_id=sheet_id,
                                             search=search,
                                             option=option,
                                             copied=copied,
                                             order=order)
            if query is None: return ret

            count = query.count()
            logger.debug(count)
            query = query.limit(page_size).offset((page - 1) * page_size)
            lists = query.all()
            #logger.debug(lists)
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 12
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            option = req.form['option']
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            order = req.form['order'] if 'order' in req.form else 'desc'
            match_type = req.form['option']

            query = ModelItem.make_query(search=search,
                                         match_type=match_type,
                                         order=order)
            count = query.count()
            query = query.limit(page_size).offset((page - 1) * page_size)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception, e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 13
0
 def select(req):
     try:
         class_is = ModelItem
         ret = {}
         page = 1
         page_size = 30
         job_id = ''
         search = ''
         option = req.form['option']
         if 'page' in req.form:
             page = int(req.form['page'])
         if 'search_word' in req.form:
             search = req.form['search_word']
         query = db.session.query(class_is)
         if search != '':
             query = query.filter(class_is.title.like('%'+search+'%'))
         if option != 'all':
             query = query.filter(class_is.statusCd.like('%'+option+'%'))
         query = query.order_by(desc(class_is.id))
         count = query.count()
         query = query.limit(page_size).offset((page-1)*page_size)
         lists = query.all()
         ret['list'] = [item.as_dict() for item in lists]
         ret['paging'] = Util.get_paging_info(count, page, page_size)
         return ret
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
Ejemplo n.º 14
0
 def get_list(req):
     try:
         page_size = 20
         page = int(req.form['page']) if 'page' in req.form else 1
         option = req.form['option'] if 'option' in req.form else 'all'
         order = req.form['order'] if 'order' in req.form else 'desc'
         program = req.form['program'].strip(
         ) if 'program' in req.form else None
         #query = Episode.query.filter_by(call='auto')
         query = ModelWavveEpisode.query.filter(
             (ModelWavveEpisode.call == 'auto')
             | (ModelWavveEpisode.call == None))
         if program is not None:
             query = query.filter(
                 ModelWavveEpisode.programtitle.like('%' + program + '%'))
         if option == 'completed':
             query = query.filter_by(completed=True)
         elif option == 'uncompleted':
             query = query.filter_by(completed=False)
         elif option == 'user_abort':
             query = query.filter_by(user_abort=True)
         elif option == 'pf_abort':
             query = query.filter_by(pf_abort=True)
         elif option == 'etc_abort_under_10':
             query = query.filter(ModelWavveEpisode.etc_abort < 10,
                                  ModelWavveEpisode.etc_abort > 0)
         elif option == 'etc_abort_11':
             query = query.filter_by(etc_abort='11')
         elif option == 'etc_abort_12':
             query = query.filter_by(etc_abort='12')
         elif option == 'etc_abort_13':
             query = query.filter_by(etc_abort='13')
         elif option == 'etc_abort_14':
             query = query.filter_by(etc_abort='14')
         if order == 'desc':
             query = query.order_by(desc(ModelWavveEpisode.id))
         else:
             query = query.order_by(ModelWavveEpisode.id)
         count = query.count()
         if page_size:
             query = query.limit(page_size)
         if page:
             query = query.offset((page - 1) * page_size)
         tmp = query.all()
         ret = {}
         ret['paging'] = Util.get_paging_info(count, page, page_size)
         ret['list'] = [item.as_dict() for item in tmp]
         return ret
     except Exception as e:
         logger.error('Exception:%s', e)
         logger.error(traceback.format_exc())
Ejemplo n.º 15
0
 def web_list(cls, req):
     ret = {}
     page = int(req.form['page']) if 'page' in req.form else 1
     page_size = 30
     job_id = ''
     search = req.form['search_word'] if 'search_word' in req.form else ''
     option = req.form['option'] if 'option' in req.form else 'all'
     order = req.form['order'] if 'order' in req.form else 'desc'
     query = cls.make_query(search=search, order=order, option=option)
     count = query.count()
     query = query.limit(page_size).offset((page - 1) * page_size)
     lists = query.all()
     ret['list'] = [item.as_dict() for item in lists]
     ret['paging'] = Util.get_paging_info(count, page, page_size)
     return ret
Ejemplo n.º 16
0
Archivo: auto.py Proyecto: wnd2da/tving
 def get_list(req):
     page_size = 20
     page = int(req.form['page']) if 'page' in req.form else 1
     option = req.form['option'] if 'option' in req.form else 'all'
     order = req.form['order'] if 'order' in req.form else 'desc'
     program = req.form['program'].strip(
     ) if 'program' in req.form else None
     #query = Episode.query.filter_by(call='auto')
     query = Episode.query.filter((Episode.call == 'auto')
                                  | (Episode.call == None))
     if program is not None:
         query = query.filter(Episode.program_name.like('%' + program +
                                                        '%'))
     if option == 'completed':
         query = query.filter_by(completed=True)
     elif option == 'uncompleted':
         query = query.filter_by(completed=False)
     elif option == 'user_abort':
         query = query.filter_by(user_abort=True)
     elif option == 'pf_abort':
         query = query.filter_by(pf_abort=True)
     elif option == 'etc_abort_under_10':
         query = query.filter(Episode.etc_abort < 10, Episode.etc_abort > 0)
     elif option == 'etc_abort_8':
         query = query.filter_by(etc_abort='8')
     elif option == 'etc_abort_12':
         query = query.filter_by(etc_abort='12')
     elif option == 'etc_abort_13':
         query = query.filter_by(etc_abort='13')
     elif option == 'etc_abort_14':
         query = query.filter_by(etc_abort='14')
     if order == 'desc':
         query = query.order_by(desc(Episode.id))
     else:
         query = query.order_by(Episode.id)
     count = query.count()
     if page_size:
         query = query.limit(page_size)
     if page:
         query = query.offset((page - 1) * page_size)
     #return query
     tmp = query.all()
     ret = {}
     ret['paging'] = Util.get_paging_info(count, page, page_size)
     ret['list'] = [item.as_dict() for item in tmp]
     return ret
Ejemplo n.º 17
0
 def web_list(cls, req):
     ret = {}
     page = int(req.form['page']) if 'page' in req.form else 1
     page_size = 30
     job_id = ''
     search = req.form['search_word'] if 'search_word' in req.form else ''
     option1 = req.form['option1'] if 'option1' in req.form else 'all'
     option2 = req.form['option2'] if 'option2' in req.form else 'all'
     order = req.form['order'] if 'order' in req.form else 'desc'
     query = cls.make_query(search=search, order=order, option1=option1, option2=option2)
     count = query.count()
     query = query.limit(page_size).offset((page-1)*page_size)
     lists = query.all()
     ret['list'] = [item.as_dict() for item in lists]
     ret['paging'] = Util.get_paging_info(count, page, page_size)
     ModelSetting.set('user_last_list_option', '%s|%s|%s|%s|%s' % (option1, option2, desc, search, page))
     return ret
Ejemplo n.º 18
0
    def filelist(req):
        try:
            ret = {}
            page = 1
            page_size = int(db.session.query(ModelSetting).filter_by(key='web_page_size').first().value)
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            query = db.session.query(ModelFileprocessMovieItem)
            if search != '':
                query = query.filter(ModelFileprocessMovieItem.filename.like('%'+search+'%'))
            option = req.form['option']
            if option == 'all':
                pass
            elif option == 'movie_o':
                query = query.filter(ModelFileprocessMovieItem.movie_id != None)
            elif option == 'movie_x':
                query = query.filter(ModelFileprocessMovieItem.movie_id == None)
            else:
                query = query.filter(ModelFileprocessMovieItem.target == option)
            order = req.form['order'] if 'order' in req.form else 'desc'
            if order == 'desc':
                query = query.order_by(desc(ModelFileprocessMovieItem.id))
            else:
                query = query.order_by(ModelFileprocessMovieItem.id)
            count = query.count()
            query = query.limit(page_size).offset((page-1)*page_size)
            logger.debug('ModelFileprocessMovieItem count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            try:
                ret['plex_server_hash'] = plex.Logic.get_server_hash()
            except:
                ret['plex_server_hash'] = ''
            return ret
        except Exception as exception:
            logger.error('Exception:%s', exception)
            logger.error(traceback.format_exc())

    ############################################################
Ejemplo n.º 19
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            job_select = 'all'
            if 'job_select' in req.form:
                job_select = req.form['job_select']

            option = 'all'
            if 'option' in req.form:
                option = req.form['option']

            query = ModelOffcloud2Item.make_query(job_name=job_select,
                                                  option=option,
                                                  search=search)
            last_list_option_rss = '%s|%s|%s|%s' % (search, job_select, option,
                                                    page)
            ModelSetting.set('last_list_option_rss', last_list_option_rss)

            count = query.count()
            query = (query.order_by(desc(
                ModelOffcloud2Item.id)).limit(page_size).offset(
                    (page - 1) * page_size))
            logger.debug('ModelOffcloud2Item count:%s', count)

            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.debug('Exception:%s', e)
            logger.debug(traceback.format_exc())
Ejemplo n.º 20
0
 def web_list(cls, req):
     try:
         ret = {}
         page = 1
         page_size = 30
         search = ''
         if 'page' in req.form:
             page = int(req.form['page'])
         if 'search_word' in req.form:
             search = req.form['search_word']
         option = req.form['option'] if 'option' in req.form else None
         order = req.form['order'] if 'order' in req.form else 'desc'
         query = cls.make_query(search, option, order)
         count = query.count()
         query = query.limit(page_size).offset((page - 1) * page_size)
         lists = query.all()
         ret['list'] = [item.as_dict() for item in lists]
         ret['paging'] = Util.get_paging_info(count, page, page_size)
         return ret
     except Exception, e:
         P.logger.error('Exception:%s', e)
         P.logger.error(traceback.format_exc())
Ejemplo n.º 21
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 30
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            result_type = req.form['result_type']
            query = db.session.query(ModelSmi2srtFile)
            if search != '':
                query = query.filter(
                    ModelSmi2srtFile.smi_file.like('%' + search + '%'))
            if result_type == 'success':
                query = query.filter(ModelSmi2srtFile.result == 'success')
            elif result_type == 'fail':
                query = query.filter(ModelSmi2srtFile.result == 'fail')
            elif result_type == 'etc':
                query = query.filter(
                    ModelSmi2srtFile.result != 'success').filter(
                        ModelSmi2srtFile.result != 'fail')

            count = query.count()
            query = (query.order_by(desc(
                ModelSmi2srtFile.id)).limit(page_size).offset(
                    (page - 1) * page_size))
            logger.debug('ModelSmi2srtFile count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception, e:
            logger.debug('Exception:%s', e)
            logger.debug(traceback.format_exc())
Ejemplo n.º 22
0
    def web_list(req):
        try:
            ret = {}
            page = 1
            page_size = 100
            job_id = ''
            search = ''
            if 'page' in req.form:
                page = int(req.form['page'])
            if 'search_word' in req.form:
                search = req.form['search_word']
            option_server = req.form[
                'option_server'] if 'option_server' in req.form else 'all'
            option_client = req.form[
                'option_client'] if 'option_client' in req.form else 'all'
            order = req.form['order'] if 'order' in req.form else 'name'

            query = ModelClientAVSubItem.make_query(
                search=search,
                option_server=option_server,
                option_client=option_client,
                order=order)
            last_list_option = '%s|%s|%s|%s|%s' % (search, option_server,
                                                   option_client, order, page)
            ModelSetting.set('last_list_option', last_list_option)
            #logger.debug(query)
            count = query.count()
            query = query.limit(page_size).offset((page - 1) * page_size)
            logger.debug('ModelClientAVSubItem count:%s', count)
            lists = query.all()
            ret['list'] = [item.as_dict() for item in lists]
            ret['paging'] = Util.get_paging_info(count, page, page_size)
            return ret
        except Exception as e:
            logger.error('Exception:%s', e)
            logger.error(traceback.format_exc())
Ejemplo n.º 23
0
    def get_list(call='web',
                 group=None,
                 sitename=None,
                 board=None,
                 page=1,
                 select_column=None,
                 search_word=None):
        try:
            if call == 'web':
                page_size = ModelSetting.get_int('web_page_size')
            else:
                page_size = ModelSetting.get_int('feed_count')

            query = db.session.query(ModelBbs2)  #.join(ModelFile2)

            # 그룹만 있고, 게시판 등록을 안할 경우 검색 안되도록
            add_group_query = False
            if group is not None and group != '':
                conditions = []
                group_entity = db.session.query(ModelGroup2).filter_by(
                    groupname=group).first()
                if group_entity is not None:
                    #2019-05-18
                    add_group_query = (len(group_entity.schedulers) > 1)
                    if len(group_entity.schedulers) == 0:
                        query = query.filter(ModelBbs2.site == 'not_child')
                    elif len(group_entity.schedulers) == 1:
                        query = query.filter(ModelBbs2.site == group_entity.
                                             schedulers[0].sitename)
                        query = query.filter(ModelBbs2.board == group_entity.
                                             schedulers[0].board_id)
                    else:
                        for item in group_entity.schedulers:
                            conditions.append(
                                and_(ModelBbs2.site == item.sitename,
                                     ModelBbs2.board == item.board_id))
                        query = query.filter(or_(*conditions))
            else:
                if sitename is not None and sitename != '':
                    query = query.filter(ModelBbs2.site == sitename)
                if board is not None and board != '':
                    query = query.filter(ModelBbs2.board == board)
            if search_word is not None and search_word != '':
                if select_column is None or select_column == 'title':
                    if search_word.find('|') != -1:
                        tmp = search_word.split('|')
                        conditions = []
                        for tt in tmp:
                            if tt != '':
                                conditions.append(
                                    ModelBbs2.title.like('%' + tt.strip() +
                                                         '%'))
                        query = query.filter(or_(*conditions))
                    elif search_word.find(',') != -1:
                        tmp = search_word.split(',')
                        for tt in tmp:
                            if tt != '':
                                query = query.filter(
                                    ModelBbs2.title.like('%' + tt.strip() +
                                                         '%'))
                    else:

                        if ModelBbs2.torrent_info is None:
                            query = query.filter(
                                ModelBbs2.title.like('%' +
                                                     search_word.strip() +
                                                     '%'))
                        else:
                            conditions = []
                            conditions.append(
                                ModelBbs2.title.like('%' +
                                                     search_word.strip() +
                                                     '%'))
                            conditions.append(
                                ModelBbs2.torrent_info.like(
                                    '%' + search_word.strip() + '%'))
                            query = query.filter(or_(*conditions))

                    #query = query.filter(ModelBbs.title.like('%'+search_word+'%'))
                elif select_column == 'filename':
                    #query = query.filter(ModelBbs.files.any(ModelFile.filename.like('%'+search_word+'%')))
                    query = query.filter(
                        ModelBbs2.files.like('%' + search_word + '%'))
                elif select_column == 'magnet':
                    #query = query.filter(ModelBbs.files.any(ModelFile.magnet.like('%'+search_word+'%')))

                    query = query.filter(
                        ModelBbs2.magnet.like('%' + search_word + '%'))
                else:
                    query = query.filter(
                        ModelBbs2.title.like('%' + search_word + '%'))

            if group is not None and group != '' and add_group_query:
                #query = query.with_entities(ModelBbs.magnet).distinct()
                #query = query.distinct(ModelBbs.files.magnet)

                subq = (db.session.query(
                    func.min(ModelBbs2.id).label("min_id")).group_by(
                        ModelBbs2.magnet).filter(or_(*conditions))).subquery()
                query = query.join(subq, and_(ModelBbs2.id == subq.c.min_id))
                query = query

            #logger.debug('GET LIST: %s', query)
            count = query.count()
            query = (query.order_by(desc(
                ModelBbs2.id)).limit(page_size).offset((page - 1) * page_size))
            ret = query.all()
            #logger.debug('LAST QUERY : %s', query)
            if call == 'api':
                return ret
            #return Util.db_to_dict(query)
            paging = Util.get_paging_info(count, page, page_size)
            return ret, paging

        except Exception as e:
            logger.debug('Exception:%s', e)
            logger.debug(traceback.format_exc())