def list(self): for key in self.key_set.smembers(): obj = {} key_parts = key.split(':') obj['cls'], obj['method'] = key_parts[3], key_parts[4] obj['value'] = RedisKey(key).val yield obj
def update_subtitles_fetch_counter(video, sub_lang=None, date=None): if sub_lang: lang = sub_lang.language else: lang = None key = get_fetch_subtitles_key(video, lang, date) sub_fetch_keys_set.sadd(key) RedisKey(key).incr() sub_fetch_total_counter.incr()
# License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see # http://www.gnu.org/licenses/agpl-3.0.html. from datetime import datetime from utils.redis_utils import default_connection, RedisKey SUBTITLES_FETCH_PREFIX = 'StSubFetch' video_view_counter = RedisKey('StVideoView') sub_fetch_total_counter = RedisKey('StSubFetchTotal') widget_views_total_counter = RedisKey('StWidgetViewsTotal') sub_fetch_keys_set = RedisKey('StSubFetchKeys') changed_video_set = RedisKey('StChangedVideos') def get_fetch_subtitles_key(video, lang=None, date=None): if not date: date = datetime.today() key = '%s:%s' % (SUBTITLES_FETCH_PREFIX, video.video_id) if lang: key += ':%s' % lang
def _get_key(self, key): if not key in self.keys: self.keys[key] = RedisKey( '%s:%s:%s' % (self.site_name, self.prefix, key), self.conn) return self.keys[key]
def __init__(self, connection, prefix, name): self.conn = connection self.prefix = prefix self.name = name self.id_key = RedisKey('%s:id' % self.prefix, self.conn) self.set_key = RedisKey('%s:set' % self.prefix, self.conn)
def _create_total_key(self): return RedisKey('%s:total' % self.prefix, self.connection)
def _create_set_key(self): return RedisKey('%s:set' % self.prefix, self.connection)