Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
 def change_like_ratio(self, ratio):
     redis_server.set('LIKE_RATIO', ratio)
Beispiel #4
0
 def change_view_ratio(self, amount):
     redis_server.set('VIEW_RATIO', amount)
Beispiel #5
0
 def change_max_views(self, amount):
     redis_server.set('MAX_VIEWS', amount)
Beispiel #6
0
 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