Пример #1
0
    def get_news(self, filter, user_id, start=0, limit=50):
        query = (
            UserNews.select(
                News.title, News.url.alias('link'), News.id, News.publish_date,
                News.publish_date.alias("persian_date"),
                fn.Concat(Setting.rss_icon_path, Source.icon).alias('icon'),
                Source.title.alias('icon_title'),
                fn.timestampdiff(SQL('SECOND'), News.publish_date,
                                 fn.utc_timestamp()).alias('seconds'),
                UserNews.is_starred).
            #where(user_id ==None | UserNews.fk_user == user_id ).
            join(News, JOIN_RIGHT_OUTER).join(Feed).join(Source).where(
                (fn.fix_arabic_char(News.title)**fn.fix_arabic_char('%' +
                                                                    filter +
                                                                    '%'))
                & ((SQL('fk_user_id is null'))
                   | (UserNews.fk_user == user_id))).naive().order_by(
                       News.publish_date.desc()).limit(limit).execute())

        #where( SQL('match(t1.title) against("'+filter+'" IN BOOLEAN MODE )') ).
        #, user_id != None and UserNews.fk_user==user_id

        for item in query:
            item.persian_date += datetime.timedelta(
                0, Setting.persian_timezone_seconds)
            tt = jdatetime.datetime.fromgregorian(datetime=item.persian_date)

            item.persian_date = tt.strftime("%d %B %Y ساعت  %H:%M")

            item.publish_date = pretty_date(item.seconds)
        return query
Пример #2
0
 def get_news(self,filter,source,days,starred,user_id,start=0,limit=50):
     query = (UserNews.select(News.title,News.url.alias('link'),News.id,News.publish_date,News.publish_date.alias("persian_date"),
             fn.Concat(Setting.rss_icon_path,Source.icon).alias('icon'),Source.title.alias('icon_title'),
             fn.timestampdiff(SQL('SECOND'),News.publish_date,fn.utc_timestamp() ).alias('seconds'),UserNews.is_starred).
              #where(user_id ==None | UserNews.fk_user == user_id ).
                       
             join(News,JOIN_RIGHT_OUTER).join(Feed).join(Source).
             where( (fn.fix_arabic_char(News.title) ** fn.fix_arabic_char('%'+filter+'%') ) & 
                   (  (SQL('fk_user_id is null')) | (UserNews.fk_user == user_id ) ) &
                   (True if source == None or user_id==None  else  Source.id==source) &
                   (True if starred == None or starred==False else UserNews.is_starred==starred) &
                   (True if days == None or user_id==None else fn.timestampdiff(SQL('DAY'),News.publish_date,fn.utc_timestamp() )<= days ) ).
             naive(). order_by(News.publish_date.desc(), News.id.desc()).limit(limit).      
             execute())
             
      #where( SQL('match(t1.title) against("'+filter+'" IN BOOLEAN MODE )') ).
      #, user_id != None and UserNews.fk_user==user_id
      
     for item in query: 
         item.persian_date += datetime.timedelta(0,Setting.persian_timezone_seconds)
         tt = jdatetime.datetime.fromgregorian(datetime=item.persian_date)
         
         item.persian_date = tt.strftime(u"%d %B %Y ساعت  %H:%M")
         
         item.publish_date =  pretty_date(item.seconds)
     return query
Пример #3
0
    def get_news(self, filter, start=0, limit=50):
        query = (
            News.select(
                News.title,
                News.url.alias("link"),
                News.id,
                News.publish_date,
                News.publish_date.alias("datey"),
                fn.Concat(Setting.rss_icon_path, Source.icon).alias("icon"),
                Source.title.alias("icon_title"),
                fn.timestampdiff(SQL("SECOND"), News.publish_date, fn.utc_timestamp()).alias("seconds"),
            )
            .where(fn.fix_arabic_char(News.title) ** fn.fix_arabic_char("%" + filter + "%"))
            .
            # where( SQL('match(t1.title) against("'+filter+'" IN BOOLEAN MODE )') ).
            join(Feed)
            .join(Source)
            .naive()
            .order_by(News.publish_date.desc())
            .limit(limit)
            .execute()
        )

        for item in query:
            item.datey += datetime.timedelta(0, Setting.persian_timezone_seconds)
            tt = jdatetime.datetime.fromgregorian(datetime=item.datey)

            item.datey = tt.strftime("%d %B %Y ساعت  %H:%M")

            item.publish_date = pretty_date(item.seconds)
        return query
Пример #4
0
 def get_news(self,start=0,limit=50):
     query = (News.select(News.title,News.url.alias('link'),News.id,News.publish_date,
             fn.Concat(Setting.rss_icon_path,Source.icon).alias('icon'),Source.title.alias('icon_title'),
             fn.timestampdiff(SQL('SECOND'),News.publish_date,fn.utc_timestamp() ).alias('seconds')).
             join(Feed).join(Source).naive().order_by(News.publish_date.desc()).limit(limit).execute())
     for item in query:
         item.publish_date =  pretty_date(item.seconds)
     return query
Пример #5
0
 def get_news(self, start=0, limit=50):
     query = (News.select(
         News.title, News.url.alias('link'), News.id, News.publish_date,
         fn.Concat(Setting.rss_icon_path, Source.icon).alias('icon'),
         Source.title.alias('icon_title'),
         fn.timestampdiff(
             SQL('SECOND'), News.publish_date, fn.utc_timestamp()).alias(
                 'seconds')).join(Feed).join(Source).naive().order_by(
                     News.publish_date.desc()).limit(limit).execute())
     for item in query:
         item.publish_date = pretty_date(item.seconds)
     return query