def reset_search(): data = request.json if not data.get('id'): return jsonify(error='missing id') Search.update({'_id': ObjectId(data['id'])}, {'$set': {'session': {}}}, safe=True) return jsonify(result=True)
def _search_file(self): if self.mode == 'ever': return date = self.session['last_file_search'] if date and date > datetime.utcnow() - DELTA_FILE_SEARCH: return media_ = Media.search(**self) files = [] for res in media_: files.extend(res.get('files', [])) if media_ and files: if self.mode == 'inc': self._add_next('episode') src = self.get('src') if src: Media.update({'_id': {'$in': [m['_id'] for m in media_]}}, {'$set': {'src': src}}, safe=True) MSearch.remove({'_id': self._id}, safe=True) logger.info('removed %s search "%s": found files %s', self.category, self._get_query(), files) return True MSearch.update({'_id': self._id}, {'$set': {'session.last_file_search': datetime.utcnow()}}, safe=True)
def update_search(): data = request.json if not data.get('_id'): return jsonify(error='missing id') id = ObjectId(data['_id']) if not data.get('name'): return jsonify(error='missing name') if not data.get('category'): return jsonify(error='missing category') if not data.get('mode'): return jsonify(error='missing mode') info = { 'name': data['name'], 'category': data['category'], 'langs': data.get('langs') or [], 'mode': data['mode'], 'safe': data.get('safe', True), 'session': {}, } if data['category'] == 'music': info['album'] = data.get('album') if not info['album']: return jsonify(error='missing album') for attr in ('season', 'episode'): val = data.get(attr) info[attr] = int(val) if val else None Search.update({'_id': id}, {'$set': info}, safe=True) return jsonify(result=True)
def _search_url(self): date = self.session['last_url_search'] if date and date > datetime.utcnow() - DELTA_URL_SEARCH: return False if self.category not in NETFLIX_CATEGORIES: return False netflix_ = Settings.get_settings('netflix') if not netflix_['username'] or not netflix_['password']: return False netflix = get_netflix_object(netflix_['username'], netflix_['password']) if not netflix: return False res = netflix.get_info(self.name, self.category) if res: Media.add_url(url=res['url'], name=res['title'], category=self.category) logger.info('found "%s" on netflix (%s)', res['title'], res['url']) if self.category == 'movies': MSearch.remove({'_id': self._id}, safe=True) logger.info('removed %s search "%s": found url %s', self.category, self.name, res['url']) return True MSearch.update({'_id': self._id}, {'$set': {'session.last_url_search': datetime.utcnow()}}, safe=True) return False
def update_search_safe(): data = request.json if not data.get('id'): return jsonify(error='missing id') id = ObjectId(data['id']) safe = data.get('safe') if not isinstance(safe, bool): return jsonify(error='invalid safe value') Search.update({'_id': id}, {'$set': {'safe': safe, 'session': {}}}, safe=True) return jsonify(result=True)