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)
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
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)
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)
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()
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()
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)
def AttachDBFetch(self, db_fetch): """Attach a DBFetch object to retrieve hits from the database. """ self.db_fetch = db_fetch self.hits = Hits()