def getTweetId(): temp=redis_server.get("tweet_id") #if tweet_id is null in redis, means the user never tweets if temp is None: #setting the initial tweet id on redis redis_server.set("tweet_id", ID_DEF) tweet_id=ID_DEF else: tweet_id=redis_server.incr("tweet_id",1) return tweet_id
def dunderbands(): if request.method == 'GET': db.session.query(Albums).delete() db.session.query(Favorites).filter_by(videoTitle='Not Given').delete() db.session.commit() if current_user.is_authenticated: redis_server.set('AROUND', 0) return render_template('search/dunderbands.html', current_user=current_user) else: flash( "You Need To Login First - Click Signup If You Don't Have A Username Yet" ) return redirect('users/login') else: if current_user.is_authenticated: try: dunderAnchor = request.form['videoId'] except KeyError: dunderAnchor = None try: prefix = request.form['prefix'] subgenre = request.form['subgenre'] genre = request.form['genre'] country = request.form['country'] redis_server.set('PREFIX', len(prefix)) redis_server.set('SUBGENRE', len(subgenre)) redis_server.set('COUNTRY', len(country)) dunderRequest = '{0:s} {1:s} {2:s} {3:s}'.format( prefix, subgenre, genre, country) except KeyError: dunderRequest = request.form['dunderRequest'] dunderSearch = string_clean(dunderRequest, 'stringNeededUpper') publishedBefore = request.form['publishedBefore'] publishedAfter = request.form['publishedAfter'] print('{0} | {1}'.format(publishedBefore, publishedAfter)) try: nextToken = request.form['nextToken'] except KeyError: nextToken = None db.session.query(Albums).delete() db.session.query(Favorites).filter_by( videoTitle='Not Given').delete() db.session.commit() currentBand = criteria_crunch(dunderSearch=dunderSearch, publishedBefore=publishedBefore, publishedAfter=publishedAfter, nextToken=nextToken, dunderAnchor=dunderAnchor) else: return redirect('users/login') flash( "You Need To Login First - Click Signup If You Don't Have A Username Yet" ) if currentBand == None or currentBand == False: flash('Search String Exausted | Double Your Efforts') return redirect('search/dunderbands') else: return render_template('search/results.html', currentBand=currentBand, publishedBefore=publishedBefore, publishedAfter=publishedAfter, current_user=current_user)
def change_like_ratio(self, ratio): redis_server.set('LIKE_RATIO', ratio)
def change_view_ratio(self, amount): redis_server.set('VIEW_RATIO', amount)
def change_max_views(self, amount): redis_server.set('MAX_VIEWS', amount)
def change_comments_needed(self, amount): redis_server.set('COMMENTS_REQUESTED', amount)
def criteria_crunch (dunderSearch, publishedBefore=None, publishedAfter=None, nextToken=None, dunderAnchor=None): if DEBUG == True: print("CRITERIA_CRUNCH") redis_server.set('LOOP', 0) redis_server.set('WHILE', 'GO') while True: redis_server.incr('LOOP') if str(redis_server.get('WHILE').decode('utf-8')) == 'NOGO': print('Redis is a NOGO') return False try: published_before = year_selecter(publishedBefore) except ValueError: print('Default Before') publishedBefore = year_selecter(year=2018) try: published_after = year_selecter(publishedAfter) except ValueError: print('Default After') publishedAfter = year_selecter(year=2016) searchResults = search_getter ( dunderSearch, token=nextToken, related_video=dunderAnchor, published_before=published_before, published_after=published_after) try: nextToken = searchResults['nextPageToken'] except KeyError: nextToken = None # At 10 iterations we start removing words from the search # to increase the chance of receiving a result. if int(str(redis_server.get('LOOP').decode('utf-8'))) == 10: print('Removing Prefix And Continuing Search') dunderSearch = dunderSearch[int(str(redis_server.get('PREFIX').decode('utf-8')))+1:len(dunderSearch)] print(dunderSearch) nextToken = None if int(str(redis_server.get('LOOP').decode('utf-8'))) == 20: print('Removing Country And Continuing Search') dunderSearch = dunderSearch[:-int(str(redis_server.get('COUNTRY').decode('utf-8')))-1] print(dunderSearch) nextToken = None if int(str(redis_server.get('LOOP').decode('utf-8'))) == 25: print('Removing Prefix And Country - Continuing Search') dunderSearch = dunderSearch[int(str(redis_server.get('PREFIX').decode('utf-8')))+1:-int(str(redis_server.get('COUNTRY').decode('utf-8')))-1] print(dunderSearch) nextToken = None if int(str(redis_server.get('LOOP').decode('utf-8'))) == 35: redis_server.set('LOOP', 0) redis_server.set('WHILE', 'NOGO') print('No Results Were Found - It Happens') return False for video in searchResults.get('items', []): videoId = video['id']['videoId'] videoTitle = video['snippet']['title'] isVideo = video['id']['kind'] == 'youtube#video' isClean = title_clean(video['snippet']['title'], includeSearch=dunderSearch) if isVideo and isClean: isFavorite = True doIgnore = True try: for favorite in current_user.favorites: if favorite.videoId == videoId: isFavorite = False else: continue for ignore in current_user.ignore: if ignore.videoId == videoId: doIgnore = False else: continue except AttributeError: print('Unit Test - Current User Is Fraudulent') checkStats = stat_checker(videoId=videoId) try: checkComments = comment_counter(videoId=videoId) != False except HttpError: print('Comments Disabled') checkComments = False if isFavorite and doIgnore and checkStats and checkComments: redis_server.set('WHILE', 'NOGO') currentBand = Albums ( videoId=videoId, nextToken=nextToken, genre=dunderSearch.upper(), videoTitle=videoTitle, topComment=comment_counter(videoId=videoId)) db.session.add(currentBand) db.session.commit() return currentBand