Пример #1
0
def epg(data, prev_date, date):
    from resources import resources
    from hits import Hits

    def date_item(params, id):
        return {
            'mode':
            'epg',
            'title':
            '%s (%s)' %
            (resources(id.strftime('%A')), id.strftime(date_format)),
            'plot':
            '%s (%s)' % (resources(epg_date(date).strftime('%A')),
                         epg_date(date).strftime(date_format)),
            'id':
            id.strftime(date_format),
            'params':
            params.strftime(date_format),
            'cm':
            cm
        }

    update = False if date == epg_date().strftime(date_format) else True
    cm = Context().epg_date()

    items.add(date_item(get_prev_day(epg_date(prev_date)),
                        epg_date(prev_date)))
    hits = data['data']['Airings']['hits']
    for i in reversed(hits):
        hit = i['hit']
        items.add(Hits(hit, epg=True).item)
    items.add(date_item(epg_date(date), get_next_day(epg_date(date))))
    items.list(upd=update)
Пример #2
0
    def Query(self, query, index='', comment=''):
        """Processes the query as Sphinx normally would.

        If specified, parse the query, retrieve the hits and compute the facets.
        """
        # first let's parse the query if possible
        if self.query_parser and isinstance(query, basestring):
            query = self.query_parser.Parse(query)
        self.query = query

        # check the default index
        index = index or self.default_index

        # let's perform a normal query
        results = SphinxClient.Query(self, getattr(query, 'sphinx', query),
                                     index, comment)

        # let's fetch the hits from the DB if possible
        if self.db_fetch and results and results['total_found']:
            self.hits = self.db_fetch.Fetch(results)
        else:
            self.hits = Hits(results)

        # let's compute the facets if possible
        if self.facets and results and results['total_found']:
            self.facets.Compute(query)

        # keep expected return of SphinxClient
        return self.hits
Пример #3
0
def epg(data, prev_date, date):
    from resources import resources
    from hits import Hits

    def date_item(params, _id):
        return {
            'mode':
            'epg',
            'title':
            '{0} {1}'.format(resources(_id.strftime('%A')),
                             _id.strftime(date_format)),
            'plot':
            '{0} {1}'.format(resources(epg_date(date).strftime('%A')),
                             epg_date(date).strftime(date_format)),
            'id':
            _id.strftime(date_format),
            'params':
            params.strftime(date_format),
            'cm':
            cm
        }

    update = False if date == epg_date().strftime(date_format) else True
    cm = Context().epg_date()

    items.add(date_item(get_prev_day(epg_date(prev_date)),
                        epg_date(prev_date)))
    hits = data['data']['Airings']
    hits = sorted(hits, key=lambda k: k.get('startDate'))
    for i in hits:
        items.add(Hits(i, epg=True).item)
    items.add(date_item(epg_date(date), get_next_day(epg_date(date))))
    items.list(upd=update)
Пример #4
0
def channel(data):
    from hits import Hits
    hits = data['data']['Airings']
    for i in hits:
        item = Hits(i).item
        if item.get('id'):
            items.add(item)
    date = epg_date()
    prev_date = get_prev_day(date)
    items.add({
        'mode': 'epg',
        'title': getString(30103),
        'plot': getString(30103),
        'id': date.strftime(date_format),
        'params': prev_date.strftime(date_format)
    })
    items.add({
        'mode': 'sports',
        'title': getString(30101),
        'plot': getString(30102)
    })
    items.add({
        'mode': 'events',
        'title': getString(30104),
        'plot': getString(30104)
    })
    items.list(sort=True)
Пример #5
0
def event(data):
    from hits import Hits
    media = data['data']['EventPageByContentId']['media']
    for m in media:
        hits = m['videos']
        for i in hits:
            items.add(Hits(i, event=True).item)
    items.list()
Пример #6
0
def video(data, id):
    from hits import Hits
    sport_id = 'sport_{0}'.format(id)
    hits = data['data'][sport_id]['hits']
    for i in hits:
        hit = i['hit']
        item = Hits(hit).item
        if item.get('id'):
            items.add(item)
    items.list()
Пример #7
0
    def __init__(self):
        """Creates a sphinx client but with all of fSphinx additional functionalities.
        """
        # the possible options
        self.query_parser = None
        self.default_index = '*'
        self.db_fetch = None
        self.cache = None
        self.sort_mode_options = []

        # the returned results
        self.query = ''
        self.hits = Hits()
        self.facets = FacetGroup()

        SphinxClient.__init__(self)
Пример #8
0
 def AttachDBFetch(self, db_fetch):
     """Attach a DBFetch object to retrieve hits from the database.
     """
     self.db_fetch = db_fetch
     self.hits = Hits()