示例#1
0
def discoversubs():
    now = datetime.utcnow()

    subform = SubscribeForm()

    usersubforums = db.session\
        .query(Subscribed)\
        .join(SubForums, (Subscribed.subcommon_id == SubForums.id))\
        .filter(current_user.id == Subscribed.user_id)\
        .filter(SubForums.room_deleted == 0)\
        .filter(SubForums.room_suspended == 0)\
        .filter(SubForums.room_banned == 0)\
        .all()

    # add user subs to a list so we dont refind them
    usersublist = []
    for usersub in usersubforums:
        usersublist.append(usersub.subcommon_id)

    recmsgs = db.session \
        .query(Messages) \
        .filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1) \
        .count()

    sendmsgs = db.session \
        .query(Messages) \
        .filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1) \
        .count()
    themsgs = int(sendmsgs) + int(recmsgs)

    page = request.args.get('page', 1, type=int)

    popularsubs = db.session\
        .query(SubForums)\
        .filter(SubForums.type_of_subcommon == 0)\
        .filter(SubForums.id.notin_(usersublist))\
        .filter(SubForums.room_deleted == 0)\
        .filter(SubForums.room_suspended == 0)\
        .filter(SubForums.room_banned == 0)\
        .order_by(SubForums.members.desc())\
        .paginate(page, 20, False)\

    next_url = url_for('discoversubs', page=popularsubs.next_num) \
        if popularsubs.has_next else None
    prev_url = url_for('discoversubs', page=popularsubs.prev_num) \
        if popularsubs.has_prev else None

    return render_template(
        'main/discover.html',
        # forms
        subform=subform,
        # variables
        now=now,
        usersubforums=usersubforums,
        themsgs=themsgs,
        # pagination
        popularsubs=popularsubs.items,
        next_url=next_url,
        prev_url=prev_url,
    )
示例#2
0
def viewpost_edit(postid):
    """
    View / Reply to a post
    """

    form = CreateCommentForm()
    saveform = SaveForm()
    reportform = ReportForm()
    reportcommentform = ReportForm()
    subform = SubscribeForm()
    editcommenttextform = EditCommentForm()
    deleteposttextform = DeletePostTextForm()
    deletecommenttextform = DeleteCommentTextForm()

    currentbchprice = db.session\
        .query(BchPrices)\
        .get(1)
    thepost = db.session \
        .query(CommonsPost) \
        .filter_by(id=postid) \
        .first_or_404()

    editposttextform = EditPostTextForm(request.form, postmessage=thepost.post_text)

    thesub = db.session \
        .query(SubForums) \
        .filter(SubForums.subcommon_name == thepost.subcommon_name) \
        .first_or_404()
    subcustom_stuff = db.session \
        .query(SubForumCustom) \
        .filter(SubForumCustom.subcommon_id == thesub.id) \
        .first()

    subid = int(thesub.id)
    subname = thepost.subcommon_name

    if current_user.is_authenticated:
        usersubforums = db.session \
            .query(Subscribed) \
            .join(SubForums, (Subscribed.subcommon_id == SubForums.id)) \
            .filter(current_user.id == Subscribed.user_id) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .all()

    else:
        usersubforums = None

    if current_user.is_authenticated:
        # see if user is subscribed
        seeifsubbed = db.session \
            .query(Subscribed) \
            .filter(current_user.id == Subscribed.user_id) \
            .filter(Subscribed.subcommon_id == subid) \
            .first()

        if seeifsubbed is None:
            seeifsubbed = 0
        else:
            seeifsubbed = 1
    else:
        seeifsubbed = 0

    comments = db.session \
        .query(Comments) \
        .filter(Comments.commons_post_id == thepost.id) \
        .order_by(Comments.path.asc()) \
        .all()

    return render_template('create/edit/edit_post.html',
                           form=form,
                           saveform=saveform,
                           reportform=reportform,
                           reportcommentform=reportcommentform,
                           editposttextform=editposttextform,
                           editcommenttextform=editcommenttextform,
                           deleteposttextform=deleteposttextform,
                           deletecommenttextform=deletecommenttextform,
                           subform=subform,
                           subname=subname,
                           seeifsubbed=-seeifsubbed,
                           comments=comments,
                           thesub=thesub,
                           post=thepost,
                           usersubforums=usersubforums,
                           getcurrentsub=thesub,
                           subcustom_stuff=subcustom_stuff,
                           currentbchprice=currentbchprice,
                           )
示例#3
0
def frontpage_top():
    """
    Returns index page and most voted/commented posts
    :return:
    """
    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()
    voteform = VoteForm()

    subid = 0
    navlink = 5

    currentbtcprice = db.session.query(BtcPrices).get(1)
    currentxmrprice = db.session.query(MoneroPrices).get(1)
    currentbchprice = db.session.query(BchPrices).get(1)
    currentltcprice = db.session.query(LtcPrices).get(1)

    # see if user leveled up and has a display to flash
    seeiflevelup = db.session.query(DisplayCoins).filter(
        DisplayCoins.user_id == current_user.id).all()
    if seeiflevelup is not None:
        for levelup in seeiflevelup:
            flash("You have leveled up to level: " +
                  str(levelup.new_user_level),
                  category='success')
            flash("Your have recieved 2 new coins", category='success')
            db.session.delete(levelup)
        db.session.commit()

    # Trending subforums
    trending = db.session.query(SubForums).order_by(
        SubForums.total_exp_subcommon.desc()).limit(10)

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session.query(Notifications)
        thenotes = thenotes.filter(Notifications.user_id == current_user.id)
        thenotes = thenotes.order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0)
        thenotescount = thenotescount.count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    recmsgs = db.session.query(Messages)
    recmsgs = recmsgs.filter(Messages.rec_user_id == current_user.id,
                             Messages.read_rec == 1)
    recmsgs = recmsgs.count()

    sendmsgs = db.session.query(Messages)
    sendmsgs = sendmsgs.filter(Messages.sender_user_id == current_user.id,
                               Messages.read_send == 1)
    sendmsgs = sendmsgs.count()

    themsgs = int(sendmsgs) + int(recmsgs)

    # getsubs user belongs too and add to list
    usersubforums = db.session.query(Subscribed)
    usersubforums = usersubforums.join(
        SubForums, (Subscribed.subcommon_id == SubForums.id))
    usersubforums = usersubforums.filter(current_user.id == Subscribed.user_id)
    usersubforums = usersubforums.filter(SubForums.id != 1)
    usersubforums = usersubforums.filter(SubForums.room_deleted != 1)
    usersubforums = usersubforums.order_by((SubForums.id == 31).desc(),
                                           SubForums.subcommon_name)
    usersubforums = usersubforums.all()

    seeifmodding = db.session.query(Mods)
    seeifmodding = seeifmodding.filter(Mods.user_id == current_user.id)
    seeifmod = seeifmodding.all()
    moddingcount = seeifmodding.count()

    seeifownering = db.session.query(SubForums)
    seeifownering = seeifownering.filter(
        SubForums.creator_user_id == current_user.id)
    seeifownering = seeifownering.filter(SubForums.room_deleted != 1)
    seeifowner = seeifownering.all()
    ownercount = seeifownering.count()

    mainpostform = MainPostForm(
        CombinedMultiDict((request.files, request.form)), )
    mainpostform.roomname.choices = [(str(row.subscriber.id),
                                      str(row.subscriber.subcommon_name))
                                     for row in usersubforums]

    if current_user.over_age is False:
        post_18 = 0
        allpost = 0
    else:
        allpost = 0
        post_18 = 1

    userbusiness = db.session.query(Business)
    userbusiness = userbusiness.filter(Business.user_id == current_user.id)
    userbusinesses = userbusiness.all()
    userbusinessescount = userbusiness.count()

    bizfollowing = db.session.query(BusinessFollowers)
    bizfollowing = bizfollowing.join(
        Business, (BusinessFollowers.business_id == Business.id))
    bizfollowing = bizfollowing.filter(
        current_user.id == BusinessFollowers.user_id)

    bizfollowing = bizfollowing.all()

    # list of subs user belongs too
    usersublist = []
    for usersub in usersubforums:
        usersublist.append(usersub.subcommon_id)

    # query latest rooms
    new_rooms = db.session.query(SubForums) \
        .filter(SubForums.id.notin_(usersublist),
                SubForums.room_deleted == 0,
                SubForums.room_suspended == 0,
                SubForums.room_banned == 0,
                SubForums.id != 1,
                SubForums.id != 14
                ) \
        .order_by(SubForums.created.desc()).limit(6)

    # query random rooms
    random_rooms = db.session.query(SubForums).filter(
        SubForums.id.notin_(usersublist),
        SubForums.room_deleted == 0,
        SubForums.room_suspended == 0,
        SubForums.room_banned == 0,
        SubForums.id != 1,
        SubForums.id != 14
    ) \
        .order_by(func.random()) \
        .limit(6)

    # POSTS sub queries
    page = request.args.get('page', 1, type=int)
    posts = db.session.query(CommonsPost)
    posts = posts.filter(CommonsPost.subcommon_id.in_(usersublist))
    posts = posts.filter(CommonsPost.subcommon_id != 1)
    posts = posts.filter(CommonsPost.hidden == 0)
    posts = posts.filter(
        or_(CommonsPost.age == post_18, CommonsPost.age == allpost))
    posts = posts.order_by(CommonsPost.highest_exp_reached.desc())
    posts = posts.paginate(page, app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('frontpage.frontpage_mostactive', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('frontpage.frontpage_mostactive', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'frontpage.html',
        now=datetime.utcnow(),
        currentbtcprice=currentbtcprice,
        currentxmrprice=currentxmrprice,
        currentbchprice=currentbchprice,
        currentltcprice=currentltcprice,

        # forms
        mainpostform=mainpostform,
        voteform=voteform,
        banuserdeleteform=banuserdeleteform,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        subform=subform,
        themsgs=themsgs,
        usersubforums=usersubforums,
        userbusinesses=userbusinesses,
        userbusinessescount=userbusinessescount,
        bizfollowing=bizfollowing,

        # general
        new_rooms=new_rooms,
        thenotescount=thenotescount,
        random_rooms=random_rooms,
        seeifmod=seeifmod,
        moddingcount=moddingcount,
        seeifowner=seeifowner,
        ownercount=ownercount,
        thenotes=thenotes,
        subid=subid,
        navlink=navlink,

        # queries/pagination
        trending=trending,
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
    )
示例#4
0
def frontpage_home():
    """
    Returns index page and most exp posts
    :return:
    """
    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()

    subid = 0
    navlink = 1

    currentbchprice = db.session.query(BchPrices).get(1)

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session.query(Notifications)
        thenotes = thenotes.filter(Notifications.user_id == current_user.id)
        thenotes = thenotes.order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0)
        thenotescount = thenotescount.count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    usersubforums = db.session.query(Subscribed)
    usersubforums = usersubforums.join(
        SubForums, (Subscribed.subcommon_id == SubForums.id))
    usersubforums = usersubforums.filter(current_user.id == Subscribed.user_id)
    usersubforums = usersubforums.filter(SubForums.id != 1)
    usersubforums = usersubforums.filter(SubForums.room_deleted != 1)
    usersubforums = usersubforums.order_by((SubForums.id == 31).desc(),
                                           SubForums.subcommon_name)
    usersubforums = usersubforums.all()

    seeifmodding = db.session.query(Mods)
    seeifmodding = seeifmodding.filter(Mods.user_id == current_user.id)
    seeifmod = seeifmodding.all()
    moddingcount = seeifmodding.count()

    seeifownering = db.session.query(SubForums)
    seeifownering = seeifownering.filter(
        SubForums.creator_user_id == current_user.id)
    seeifownering = seeifownering.filter(SubForums.room_deleted != 1)
    seeifowner = seeifownering.all()
    ownercount = seeifownering.count()

    if current_user.is_authenticated:
        mainpostform = MainPostForm(
            CombinedMultiDict((request.files, request.form)), )
        mainpostform.roomname.choices = [(str(row.subscriber.id),
                                          str(row.subscriber.subcommon_name))
                                         for row in usersubforums]
    else:
        mainpostform = None

    if current_user.is_authenticated:
        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1
    else:
        post_18 = 0
        allpost = 0

    if current_user.is_authenticated:
        recmsgs = db.session.query(Messages)
        recmsgs = recmsgs.filter(Messages.rec_user_id == current_user.id,
                                 Messages.read_rec == 1)
        recmsgs = recmsgs.count()

        sendmsgs = db.session.query(Messages)
        sendmsgs = sendmsgs.filter(Messages.sender_user_id == current_user.id,
                                   Messages.read_send == 1)
        sendmsgs = sendmsgs.count()

        themsgs = int(sendmsgs) + int(recmsgs)
    else:
        themsgs = 0

    # list of subs user belongs too
    usersublist = []
    for usersub in usersubforums:
        usersublist.append(usersub.subcommon_id)

    # query latest rooms
    new_rooms = db.session.query(SubForums) \
        .filter(SubForums.id.notin_(usersublist),
                SubForums.room_deleted == 0,
                SubForums.room_suspended == 0,
                SubForums.room_banned == 0,
                SubForums.id != 1,
                SubForums.id != 14
                ) \
        .order_by(SubForums.created.desc()).limit(6)

    # query random rooms
    random_rooms = db.session.query(SubForums).filter(
        SubForums.id.notin_(usersublist),
        SubForums.room_deleted == 0,
        SubForums.room_suspended == 0,
        SubForums.room_banned == 0,
        SubForums.id != 1,
        SubForums.id != 14
    ) \
        .order_by(func.random()) \
        .limit(6)

    page = request.args.get('page', 1, type=int)
    # POSTS sub queries where user is subbed to list
    # get posts by most exp
    posts = db.session.query(CommonsPost)
    posts = posts.filter(CommonsPost.subcommon_id.in_(usersublist))
    posts = posts.filter(CommonsPost.subcommon_id != 1)
    posts = posts.filter(CommonsPost.hidden == 0)
    posts = posts.filter(
        or_(CommonsPost.age == post_18, CommonsPost.age == allpost))
    posts = posts.order_by(CommonsPost.hotness_rating_now.desc(),
                           CommonsPost.created.desc())
    posts = posts.paginate(page, app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('frontpage.frontpage_home', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('frontpage.frontpage_home', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'frontpage.html',
        now=datetime.utcnow(),
        # forms
        subform=subform,
        thenotescount=thenotescount,
        mainpostform=mainpostform,
        banuserdeleteform=banuserdeleteform,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        # general
        new_rooms=new_rooms,
        random_rooms=random_rooms,
        seeifmod=seeifmod,
        moddingcount=moddingcount,
        seeifowner=seeifowner,
        ownercount=ownercount,
        subid=subid,
        themsgs=themsgs,
        navlink=navlink,
        usersubforums=usersubforums,
        thenotes=thenotes,
        # pagination
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
        currentbchprice=currentbchprice,
    )
示例#5
0
def frontpage_mostactive():
    """
    Returns index page and most voted/commented posts
    :return:
    """
    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()

    subid = 0
    navlink = 3

    currentbchprice = db.session.query(BchPrices).get(1)

    # Trending subforums
    trending = db.session.query(SubForums).order_by(
        SubForums.total_exp_subcommon.desc()).limit(10)

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session.query(Notifications)
        thenotes = thenotes.filter(Notifications.user_id == current_user.id)
        thenotes = thenotes.order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0)
        thenotescount = thenotescount.count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    recmsgs = db.session.query(Messages)
    recmsgs = recmsgs.filter(Messages.rec_user_id == current_user.id,
                             Messages.read_rec == 1)
    recmsgs = recmsgs.count()

    sendmsgs = db.session.query(Messages)
    sendmsgs = sendmsgs.filter(Messages.sender_user_id == current_user.id,
                               Messages.read_send == 1)
    sendmsgs = sendmsgs.count()

    themsgs = int(sendmsgs) + int(recmsgs)

    # get subs user belongs too and add to list
    usersubforums = db.session.query(Subscribed)
    usersubforums = usersubforums.join(
        SubForums, (Subscribed.subcommon_id == SubForums.id))
    usersubforums = usersubforums.filter(current_user.id == Subscribed.user_id)
    usersubforums = usersubforums.filter(SubForums.id != 1)
    usersubforums = usersubforums.filter(SubForums.room_deleted != 1)
    usersubforums = usersubforums.order_by((SubForums.id == 31).desc(),
                                           SubForums.subcommon_name)
    usersubforums = usersubforums.all()

    seeifmodding = db.session.query(Mods)
    seeifmodding = seeifmodding.filter(Mods.user_id == current_user.id)
    seeifmod = seeifmodding.all()
    moddingcount = seeifmodding.count()

    mainpostform = MainPostForm(
        CombinedMultiDict((request.files, request.form)), )
    mainpostform.roomname.choices = [(str(row.subscriber.id),
                                      str(row.subscriber.subcommon_name))
                                     for row in usersubforums]

    if current_user.over_age is False:
        post_18 = 0
        allpost = 0
    else:
        allpost = 0
        post_18 = 1

    # list of subs user belongs too
    usersublist = []
    for usersub in usersubforums:
        usersublist.append(usersub.subcommon_id)

    # POSTS sub queries
    page = request.args.get('page', 1, type=int)
    posts = db.session.query(CommonsPost)
    posts = posts.filter(CommonsPost.subcommon_id.in_(usersublist))
    posts = posts.filter(CommonsPost.subcommon_id != 1)
    posts = posts.filter(CommonsPost.hidden == 0)
    posts = posts.filter(
        or_(CommonsPost.age == post_18, CommonsPost.age == allpost))
    posts = posts.order_by(CommonsPost.comment_count.desc(),
                           CommonsPost.created.desc())
    posts = posts.paginate(page, app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('frontpage.frontpage_mostactive', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('frontpage.frontpage_mostactive', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'frontpage.html',
        now=datetime.utcnow(),
        currentbchprice=currentbchprice,

        # forms
        mainpostform=mainpostform,
        banuserdeleteform=banuserdeleteform,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        subform=subform,

        # general
        thenotescount=thenotescount,
        seeifmod=seeifmod,
        moddingcount=moddingcount,
        thenotes=thenotes,
        subid=subid,
        themsgs=themsgs,
        navlink=navlink,
        usersubforums=usersubforums,

        # queries/pagination
        trending=trending,
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
    )
示例#6
0
def index():
    """
    Returns index page and hottest posts
    :return:
    """

    now = datetime.utcnow()

    navlink = 1

    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()

    currentbchprice = BchPrices.query.get(1)

    # get unread messages
    if current_user.is_authenticated:
        therecmsgs = db.session\
            .query(Messages)\
            .filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1)\
            .count()

        thesendmsgs = db.session\
            .query(Messages)\
            .filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1)\
            .count()

        themsgs = int(thesendmsgs) + int(therecmsgs)
    else:
        themsgs = 0

    # get unread notifications
    if current_user.is_authenticated:
        thenotes = db.session\
            .query(Notifications)\
            .filter(Notifications.user_id == current_user.id)\
            .order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0).count()
        thenotes.limit(25)

    else:
        thenotes = 0
        thenotescount = 0

    # get users daily missions
    if current_user.is_authenticated:
        if current_user.confirmed == 1:
            getuserdaily = db.session.query(UserDailyChallenge) \
                .filter(UserDailyChallenge.user_id == current_user.id) \
                .all()
        else:
            getuserdaily = db.session.query(DailyChallenge) \
                .order_by(func.random()) \
                .limit(2)
    else:
        getuserdaily = db.session.query(DailyChallenge) \
            .order_by(func.random()) \
            .limit(2)

    if current_user.is_authenticated:
        # get subs user belongs too
        usersubforums = db.session \
            .query(Subscribed) \
            .join(SubForums, (Subscribed.subcommon_id == SubForums.id)) \
            .filter(current_user.id == Subscribed.user_id) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .order_by(SubForums.subcommon_name) \
            .all()

        guestsubforums = None
    else:
        guestsubforums = db.session \
            .query(SubForums) \
            .filter(SubForums.age_required == 0) \
            .filter(SubForums.type_of_subcommon == 0) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0,
                    ) \
            .order_by(SubForums.total_exp_subcommon.desc()) \
            .limit(7)
        usersubforums = None

    if current_user.is_authenticated:
        # get subs user belongs too
        seeifmod = db.session\
            .query(Mods)\
            .filter(Mods.user_id == current_user.id)
        moddingcount = seeifmod.count()
        seeifmod = seeifmod.all()

    else:
        seeifmod = None
        moddingcount = None

    # POSTS sub quries
    page = request.args.get('page', 1, type=int)
    posts = db.session \
        .query(CommonsPost) \
        .filter(CommonsPost.hidden == 0) \
        .order_by(CommonsPost.hotness_rating_now.desc(), CommonsPost.created.desc()) \
        .paginate(page, app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('index', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('index', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'index.html',
        now=now,
        # forms
        subform=subform,
        banuserdeleteform=banuserdeleteform,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        # general
        getuserdaily=getuserdaily,
        seeifmod=seeifmod,
        moddingcount=moddingcount,
        themsgs=themsgs,
        usersubforums=usersubforums,
        guestsubforums=guestsubforums,
        navlink=navlink,
        thenotes=thenotes,
        thenotescount=thenotescount,
        # pagination
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
        # coin prices
        currentbchprice=currentbchprice,
    )
示例#7
0
def viewpost_edit(postid):
    """
    View / Reply to a post
    """

    form = CreateCommentForm()
    saveform = SaveForm()
    reportform = ReportForm()
    reportcommentform = ReportForm()
    subform = SubscribeForm()
    editcommenttextform = EditCommentForm()
    deleteposttextform = DeletePostTextForm()
    deletecommenttextform = DeleteCommentTextForm()
    voteform = VoteForm()

    currentbtcprice = db.session.query(BtcPrices).get(1)
    currentxmrprice = db.session.query(MoneroPrices).get(1)
    currentbchprice = db.session.query(BchPrices).get(1)
    currentltcprice = db.session.query(LtcPrices).get(1)

    # get the sub
    thepost = db.session.query(CommonsPost).filter_by(id=postid).first_or_404()

    # security
    if thepost.business_id is None:
        if current_user.id != thepost.poster_user_id:
            flash("Not allowed to edit this post.", category="danger")
            return redirect((request.args.get('next', request.referrer)))
    else:
        thebiz = db.session.query(Business).filter(
            Business.id == thepost.business_id).first()
        if thebiz.user_id != current_user.id:
            return redirect(url_for('index'))

    editposttextform = EditPostTextForm(request.form,
                                        postmessage=thepost.post_text)

    thesub = db.session.query(SubForums).filter(
        SubForums.subcommon_name == thepost.subcommon_name).first_or_404()
    # get sub customization
    subcustom_stuff = db.session.query(SubForumCustom).filter(
        SubForumCustom.subcommon_id == thesub.id).first()
    # get id of the sub
    subid = int(thesub.id)
    subtype = thesub.type_of_subcommon
    subname = thepost.subcommon_name

    if current_user.is_authenticated:
        seeifmod = db.session.query(Mods)
        seeifmod = seeifmod.filter(Mods.subcommon_id == subid)
        seeifmod = seeifmod.filter(Mods.user_id == current_user.id)
        seeifmod = seeifmod.first()
        if seeifmod is None:
            useramod = 0
        else:
            useramod = 1
        if current_user.id == thesub.creator_user_id:
            userowner = 1
        else:
            userowner = 0
    else:
        useramod = 0
        userowner = 0

    # see if user is invited
    if subtype == 1:
        if useramod or userowner == 1:
            pass
        else:
            if current_user.is_authenticated:
                seeifuserinvited = db.session.query(PrivateMembers)
                seeifuserinvited = seeifuserinvited.filter(
                    current_user.id == PrivateMembers.user_id)
                seeifuserinvited = seeifuserinvited.filter(
                    PrivateMembers.subcommon_id == subid)
                seeifuserinvited = seeifuserinvited.first()
                if seeifuserinvited is None:
                    return redirect(url_for('private', subname=subname))
            else:
                return redirect(url_for('private', subname=subname))
    if current_user.is_authenticated:
        usersubforums = db.session.query(Subscribed)
        usersubforums = usersubforums.join(
            SubForums, (Subscribed.subcommon_id == SubForums.id))
        usersubforums = usersubforums.filter(
            current_user.id == Subscribed.user_id)
        usersubforums = usersubforums.filter(SubForums.id != 1)
        usersubforums = usersubforums.filter(SubForums.room_banned == 0,
                                             SubForums.room_deleted == 0,
                                             SubForums.room_suspended == 0)
        usersubforums = usersubforums.all()

    else:
        usersubforums = None

    if current_user.is_authenticated:
        # see if user is subscribed
        seeifsubbed = db.session.query(Subscribed)
        seeifsubbed = seeifsubbed.filter(current_user.id == Subscribed.user_id)
        seeifsubbed = seeifsubbed.filter(Subscribed.subcommon_id == subid)

        seeifsubbed = seeifsubbed.first()
        if seeifsubbed is None:
            seeifsubbed = 0
        else:
            seeifsubbed = 1
    else:
        seeifsubbed = 0

    comments = db.session.query(Comments)
    comments = comments.filter(Comments.commons_post_id == thepost.id)
    comments = comments.order_by(Comments.path.asc())
    comments = comments.all()

    return render_template(
        'create/edit/edit_post.html',
        form=form,
        saveform=saveform,
        reportform=reportform,
        reportcommentform=reportcommentform,
        editposttextform=editposttextform,
        editcommenttextform=editcommenttextform,
        deleteposttextform=deleteposttextform,
        deletecommenttextform=deletecommenttextform,
        subform=subform,
        voteform=voteform,
        subname=subname,
        seeifsubbed=-seeifsubbed,
        comments=comments,
        thesub=thesub,
        post=thepost,
        usersubforums=usersubforums,
        getcurrentsub=thesub,
        subcustom_stuff=subcustom_stuff,
        currentbtcprice=currentbtcprice,
        currentxmrprice=currentxmrprice,
        currentbchprice=currentbchprice,
        currentltcprice=currentltcprice,
    )
示例#8
0
def newest():
    """
    Returns index page and hottest posts
    :return:
    """
    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()
    navlink = 2

    currentbchprice = BchPrices.query.get(1)

    now = datetime.utcnow()

    # get unread notifications
    if current_user.is_authenticated:
        thenotes = db.session \
            .query(Notifications) \
            .filter(Notifications.user_id == current_user.id) \
            .order_by(Notifications.timestamp.desc())
        thenotescount = thenotes \
            .filter(Notifications.read == 0) \
            .count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    # get subs user belongs too
    if current_user.is_authenticated:

        usersubforums = db.session \
            .query(Subscribed) \
            .join(SubForums, (Subscribed.subcommon_id == SubForums.id)) \
            .filter(current_user.id == Subscribed.user_id) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .order_by((SubForums.id == 31).desc(),
                      SubForums.subcommon_name) \
            .all()
        guestsubforums = None
    else:
        guestsubforums = db.session \
            .query(SubForums) \
            .filter(SubForums.age_required == 0) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .filter(SubForums.type_of_subcommon == 0) \
            .order_by(SubForums.total_exp_subcommon.desc()) \
            .limit(20)
        usersubforums = None

    if current_user.is_authenticated:
        recmsgs = db.session\
            .query(Messages)\
            .filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1)\
            .count()

        sendmsgs = db.session\
            .query(Messages)\
            .filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1)\
            .count()
        themsgs = int(sendmsgs) + int(recmsgs)
    else:
        themsgs = 0

    if current_user.is_authenticated:
        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1
    else:
        post_18 = 0
        allpost = 0

    # get users daily missions
    if current_user.is_authenticated:
        if current_user.confirmed == 1:
            getuserdaily = db.session \
                .query(UserDailyChallenge) \
                .filter(UserDailyChallenge.user_id == current_user.id) \
                .all()
        else:
            getuserdaily = db.session \
                .query(DailyChallenge) \
                .order_by(func.random()) \
                .limit(2)
    else:
        getuserdaily = db.session \
            .query(DailyChallenge) \
            .order_by(func.random()) \
            .limit(2)

    # POSTS sub queries
    page = request.args.get('page', 1, type=int)
    posts = db.session\
        .query(CommonsPost)\
        .filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost))\
        .filter(CommonsPost.hidden == 0)\
        .order_by(CommonsPost.created.desc())\
        .paginate(page, app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('newest', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('newest', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'index.html',
        now=now,
        # forms
        subform=subform,
        banuserdeleteform=banuserdeleteform,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        # general
        thenotes=thenotes,
        currentbchprice=currentbchprice,
        getuserdaily=getuserdaily,
        thenotescount=thenotescount,
        themsgs=themsgs,
        usersubforums=usersubforums,
        guestsubforums=guestsubforums,
        navlink=navlink,
        # pagination
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
    )
示例#9
0
def followers_newest():

    """
    Returns index page and newest posts
    :return:
    """
    subform = SubscribeForm()
    wall_post_form = MainPostForm(CombinedMultiDict((request.files, request.form)))
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()

    subid = 0
    navlink = 2

    currentbchprice = db.session \
        .query(BchPrices) \
        .get(1)

    # Trending subfoums
    trending = db.session \
        .query(SubForums) \
        .order_by(SubForums.total_exp_subcommon.desc()) \
        .limit(10)

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session \
            .query(Notifications) \
            .filter(Notifications.user_id == current_user.id) \
            .order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0).count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    recmsgs = db.session \
        .query(Messages) \
        .filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1) \
        .count()

    sendmsgs = db.session \
        .query(Messages) \
        .filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1) \
        .count()

    themsgs = int(sendmsgs) + int(recmsgs)

    seeifmodding = db.session.query(Mods) \
        .filter(Mods.user_id == current_user.id)
    seeifmod = seeifmodding.all()
    moddingcount = seeifmodding.count()

    seeifownering = db.session \
        .query(SubForums) \
        .filter(SubForums.creator_user_id == current_user.id) \
        .filter(SubForums.room_deleted != 1)
    seeifowner = seeifownering.all()
    ownercount = seeifownering.count()

    usersubforums = db.session \
        .query(Subscribed) \
        .join(SubForums, (Subscribed.subcommon_id == SubForums.id)) \
        .filter(current_user.id == Subscribed.user_id) \
        .filter(SubForums.room_banned == 0,
                SubForums.room_deleted == 0,
                SubForums.room_suspended == 0
                ) \
        .all()

    if current_user.is_authenticated:
        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1
    else:
        post_18 = 0
        allpost = 0

    # list of friends ids
    usersublist = []
    usersubfriends = db.session \
        .query(Followers) \
        .filter(Followers.follower_id == current_user.id) \
        .all()
    for userfriend in usersubfriends:
        usersublist.append(userfriend.followed_id)

    # POSTS sub queries
    page = request.args.get('page', 1, type=int)
    posts = db.session \
        .query(CommonsPost) \
        .filter(CommonsPost.hidden == 0) \
        .filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost)) \
        .filter(CommonsPost.user_id.in_(usersublist)) \
        .order_by(CommonsPost.created.desc()) \
        .paginate(page,POSTS_PER_PAGE, False)

    next_url = url_for('followers.followers_newest', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('followers.followers_newest', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template('followers.html',
                           now=datetime.utcnow(),
                           currentbchprice=currentbchprice,
                           # form
                           wall_post_form=wall_post_form,
                           subform=subform,
                           banuserdeleteform=banuserdeleteform,
                           lockpostform=lockpostform,
                           deletepostform=deletepostform,
                           muteuserform=muteuserform,
                           # general
                           thenotescount=thenotescount,
                           thenotes=thenotes,
                           themsgs=themsgs,
                           seeifmod=seeifmod,
                           moddingcount=moddingcount,
                           seeifowner=seeifowner,
                           ownercount=ownercount,
                           subid=subid,
                           navlink=navlink,
                           usersubforums=usersubforums,
                           # queries/pagination
                           trending=trending,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           )
示例#10
0
def followers_home():

    """
    Returns index page and most exp posts
    :return:
    """
    try:
        subform = SubscribeForm()
        wall_post_form = MainPostForm(CombinedMultiDict((request.files, request.form)))
        banuserdeleteform = QuickBanDelete()
        lockpostform = QuickLock()
        deletepostform = QuickDelete()
        muteuserform = QuickMute()

        subid = 0
        navlink = 3

        currentbchprice = db.session\
            .query(BchPrices)\
            .get(1)

        thenotes = db.session\
            .query(Notifications)\
            .filter(Notifications.user_id == current_user.id)\
            .order_by(Notifications.timestamp.desc())

        thenotescount = thenotes.filter(Notifications.read == 0).count()
        thenotes = thenotes.limit(25)


        recmsgs = db.session\
            .query(Messages)\
            .filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1)\
            .count()

        sendmsgs = db.session\
            .query(Messages)\
            .filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1)\
            .count()

        themsgs = int(sendmsgs) + int(recmsgs)

        usersubforums = db.session\
            .query(Subscribed)\
            .join(SubForums, (Subscribed.subcommon_id == SubForums.id))\
            .filter(current_user.id == Subscribed.user_id)\
            .filter(SubForums.room_banned == 0,
                 SubForums.room_deleted == 0,
                 SubForums.room_suspended == 0
                 )\
            .order_by((SubForums.id == 31).desc(), SubForums.subcommon_name)\
            .all()

        seeifmodding = db.session.query(Mods)\
            .filter(Mods.user_id == current_user.id)
        seeifmod = seeifmodding.all()
        moddingcount = seeifmodding.count()

        seeifownering = db.session\
            .query(SubForums)\
            .filter(SubForums.creator_user_id == current_user.id)\
            .filter(SubForums.room_deleted != 1)
        seeifowner = seeifownering.all()
        ownercount = seeifownering.count()

        # Most Recent Tippers
        recent_tippers_post = db.session.query(RecentTips) \
            .order_by(RecentTips.created.desc()) \
            .limit(3)

        # Trending subforums
        trending = db.session.query(SubForums) \
            .order_by(SubForums.total_exp_subcommon.desc()) \
            .limit(10)

        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1

        # list of friends ids
        usersublist = []
        usersubfriends = db.session\
            .query(Followers) \
            .filter(Followers.follower_id == current_user.id) \
            .all()
        for userfriend in usersubfriends:
            usersublist.append(userfriend.followed_id)

        if current_user.is_authenticated:
            mainpostform = MainPostForm(CombinedMultiDict((request.files, request.form)), )
            mainpostform.roomname.choices = \
                [(str(row.subscriber.id), str(row.subscriber.subcommon_name)) for row in usersubforums]
        else:
            mainpostform = None

        # POSTS sub queries where user is subbed to list
        # get posts by most exp
        page = request.args.get('page', 1, type=int)
        posts = db.session\
            .query(CommonsPost)\
            .filter(CommonsPost.hidden == 0)\
            .filter(CommonsPost.user_id.in_(usersublist))\
            .filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost))\
            .order_by(CommonsPost.hotness_rating_now.desc(), CommonsPost.created.desc())\
            .paginate(page, POSTS_PER_PAGE, False)

        next_url = url_for('followers.followers_home', page=posts.next_num) \
            if posts.has_next else None
        prev_url = url_for('followers.followers_home', page=posts.prev_num) \
            if posts.has_prev else None

    except Exception as e:
        flash("There was an error")
        return redirect(url_for('index'))

    return render_template('followers.html',
                           now=datetime.utcnow(),
                           # forms
                           subform=subform,

                           mainpostform=mainpostform,
                           wall_post_form=wall_post_form,
                           banuserdeleteform=banuserdeleteform,
                           lockpostform=lockpostform,
                           deletepostform=deletepostform,
                           muteuserform=muteuserform,
                           # general
                           seeifmod=seeifmod,
                           moddingcount=moddingcount,
                           seeifowner=seeifowner,
                           ownercount=ownercount,
                           thenotescount=thenotescount,
                           subid=subid,
                           navlink=navlink,
                           themsgs=themsgs,

                           usersubforums=usersubforums,
                           # queries/pagination
                           trending=trending,
                           thenotes=thenotes,
                           # stats
                           recent_tippers_post=recent_tippers_post,
                           # pagination
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           currentbchprice=currentbchprice,
                           )
示例#11
0
def followers_top():

    """
    Returns index page and most voted/commented posts
    :return:
    """
    subform = SubscribeForm()

    wall_post_form = MainPostForm(CombinedMultiDict((request.files, request.form)))
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()
    voteform = VoteForm()

    subid = 0
    navlink = 5

    currentbtcprice = db.session.query(BtcPrices).get(1)
    currentxmrprice = db.session.query(MoneroPrices).get(1)
    currentbchprice = db.session.query(BchPrices).get(1)
    currentltcprice = db.session.query(LtcPrices).get(1)

    # see if user leveled up and has a display to flash
    seeiflevelup = db.session.query(DisplayCoins).filter(DisplayCoins.user_id == current_user.id).all()
    if seeiflevelup is not None:
        for levelup in seeiflevelup:
            flash("You have leveled up to level: " + str(levelup.new_user_level), category='success')
            flash("Your have recieved 2 new coins", category='success')
            db.session.delete(levelup)
        db.session.commit()

    # Trending subforums
    trending = db.session.query(SubForums).order_by(SubForums.total_exp_subcommon.desc()).limit(10)

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session.query(Notifications)
        thenotes = thenotes.filter(Notifications.user_id == current_user.id)
        thenotes = thenotes.order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0)
        thenotescount = thenotescount.count()
        thenotes = thenotes.limit(25)
    else:
        thenotes = 0
        thenotescount = 0

    recmsgs = db.session.query(Messages)
    recmsgs = recmsgs.filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1)
    recmsgs = recmsgs.count()

    sendmsgs = db.session.query(Messages)
    sendmsgs = sendmsgs.filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1)
    sendmsgs = sendmsgs.count()

    themsgs = int(sendmsgs) + int(recmsgs)

    seeifmodding = db.session.query(Mods)
    seeifmodding = seeifmodding.filter(Mods.user_id == current_user.id)
    seeifmod = seeifmodding.all()
    moddingcount = seeifmodding.count()

    seeifownering = db.session.query(SubForums)
    seeifownering = seeifownering.filter(SubForums.creator_user_id == current_user.id)
    seeifownering = seeifownering.filter(SubForums.room_deleted != 1)
    seeifowner = seeifownering.all()
    ownercount = seeifownering.count()

    usersubforums = db.session.query(Subscribed)
    usersubforums = usersubforums.join(SubForums, (Subscribed.subcommon_id == SubForums.id))
    usersubforums = usersubforums.filter(current_user.id == Subscribed.user_id)
    usersubforums = usersubforums.filter(SubForums.id != 1)
    usersubforums = usersubforums.filter(SubForums.room_banned == 0,
                                         SubForums.room_deleted == 0,
                                         SubForums.room_suspended == 0
                                         )
    usersubforums = usersubforums.all()

    if current_user.is_authenticated:
        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1
    else:
        post_18 = 0
        allpost = 0

    # list of friends ids
    usersublist = []
    usersubfriends = Followers.query.filter(Followers.follower_id == current_user.id).all()
    for userfriend in usersubfriends:
        usersublist.append(userfriend.followed_id)

    # POSTS sub queries
    page = request.args.get('page', 1, type=int)
    posts = db.session.query(CommonsPost)
    posts = posts.filter(CommonsPost.hidden == 0)
    posts = posts.filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost))
    posts = posts.filter(CommonsPost.user_id.in_(usersublist))
    posts = posts.order_by(CommonsPost.highest_exp_reached.desc())
    posts = posts.paginate(page, POSTS_PER_PAGE, False)

    next_url = url_for('followers.followers_mostactive', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('followers.followers_mostactive', page=posts.prev_num) \
        if posts.has_prev else None

    return render_template('followers.html',
                           now=datetime.utcnow(),
                           currentbtcprice=currentbtcprice,
                           currentxmrprice=currentxmrprice,
                           currentbchprice=currentbchprice,
                           currentltcprice=currentltcprice,
                           # forms
                           subform=subform,

                           wall_post_form=wall_post_form,
                           voteform=voteform,
                           banuserdeleteform=banuserdeleteform,
                           lockpostform=lockpostform,
                           deletepostform=deletepostform,
                           muteuserform=muteuserform,

                           # general
                           seeifmod=seeifmod,
                           moddingcount=moddingcount,
                           seeifowner=seeifowner,
                           ownercount=ownercount,
                           thenotes=thenotes,
                           thenotescount=thenotescount,
                           subid=subid,
                           themsgs=themsgs,
                           navlink=navlink,
                           usersubforums=usersubforums,
                           # queries/pagination
                           trending=trending,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           )
示例#12
0
def followers_home():

    """
    Returns index page and most exp posts
    :return:
    """
    try:
        subform = SubscribeForm()
        wall_post_form = MainPostForm(CombinedMultiDict((request.files, request.form)))
        banuserdeleteform = QuickBanDelete()
        lockpostform = QuickLock()
        deletepostform = QuickDelete()
        muteuserform = QuickMute()
        voteform = VoteForm()
        subpostcommentform = CreateCommentQuickForm()

        subid = 0
        navlink = 3

        currentbtcprice = db.session.query(BtcPrices).get(1)
        currentxmrprice = db.session.query(MoneroPrices).get(1)
        currentbchprice = db.session.query(BchPrices).get(1)
        currentltcprice = db.session.query(LtcPrices).get(1)

        thenotes = db.session.query(Notifications)
        thenotes = thenotes.filter(Notifications.user_id == current_user.id)
        thenotes = thenotes.order_by(Notifications.timestamp.desc())
        thenotescount = thenotes.filter(Notifications.read == 0)
        thenotescount = thenotescount.count()
        thenotes = thenotes.limit(25)

        recmsgs = db.session.query(Messages)
        recmsgs = recmsgs.filter(Messages.rec_user_id == current_user.id, Messages.read_rec == 1)
        recmsgs = recmsgs.count()

        sendmsgs = db.session.query(Messages)
        sendmsgs = sendmsgs.filter(Messages.sender_user_id == current_user.id, Messages.read_send == 1)
        sendmsgs = sendmsgs.count()

        themsgs = int(sendmsgs) + int(recmsgs)

        usersubforums = db.session.query(Subscribed)
        usersubforums = usersubforums.join(SubForums, (Subscribed.subcommon_id == SubForums.id))
        usersubforums = usersubforums.filter(current_user.id == Subscribed.user_id)
        usersubforums = usersubforums.filter(SubForums.id != 1)
        usersubforums = usersubforums.filter(SubForums.room_banned == 0,
                                             SubForums.room_deleted == 0,
                                             SubForums.room_suspended == 0
                                             )
        usersubforums = usersubforums.order_by((SubForums.id == 31).desc(), SubForums.subcommon_name)
        usersubforums = usersubforums.all()

        seeifmodding = db.session.query(Mods)
        seeifmodding = seeifmodding.filter(Mods.user_id == current_user.id)
        seeifmod = seeifmodding.all()
        moddingcount = seeifmodding.count()

        seeifownering = db.session.query(SubForums)
        seeifownering = seeifownering.filter(SubForums.creator_user_id == current_user.id)
        seeifownering = seeifownering.filter(SubForums.room_deleted != 1)
        seeifowner = seeifownering.all()
        ownercount = seeifownering.count()

        # see if user leveled up and has a display to flash
        seeiflevelup = db.session.query(DisplayCoins).filter(DisplayCoins.user_id == current_user.id).all()
        if seeiflevelup is not None:
            for levelup in seeiflevelup:
                flash("You have leveled up to level: " + str(levelup.new_user_level), category='success')
                flash("Your have recieved 2 new coins", category='success')
                db.session.delete(levelup)
            db.session.commit()

        # stats for sidebar
        # all time top tippers for posts
        top_tippers_alltime_post_btc = db.session.query(BtcPostTips) \
            .order_by(BtcPostTips.amount_usd.desc()) \
            .limit(3)

        # top tippers this week
        seven_days_ago = datetime.today() - timedelta(days=7)
        top_tippers_pastweek_post_btc = db.session.query(BtcPostTips) \
            .filter(BtcPostTips.created >= seven_days_ago) \
            .order_by(BtcPostTips.amount_usd.desc()) \
            .limit(3)

        # Most Recent Tippers
        recent_tippers_post = db.session.query(RecentTips) \
            .order_by(RecentTips.created.desc()) \
            .limit(3)

        # Trending subforums
        trending = db.session.query(SubForums) \
            .order_by(SubForums.total_exp_subcommon.desc()) \
            .limit(10)

        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1

        # list of friends ids
        usersublist = []
        usersubfriends = db.session.query(Followers)\
            .filter(Followers.follower_id == current_user.id)\
            .all()
        for userfriend in usersubfriends:
            usersublist.append(userfriend.followed_id)

        if current_user.is_authenticated:
            mainpostform = MainPostForm(CombinedMultiDict((request.files, request.form)), )
            mainpostform.roomname.choices = \
                [(str(row.subscriber.id), str(row.subscriber.subcommon_name)) for row in usersubforums]
        else:
            mainpostform = None


        # POSTS sub queries where user is subbed to list
        # get posts by most exp
        page = request.args.get('page', 1, type=int)
        posts = db.session.query(CommonsPost)
        posts = posts.filter(CommonsPost.hidden == 0)
        posts = posts.filter(CommonsPost.user_id.in_(usersublist))
        posts = posts.filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost))
        posts = posts.order_by(CommonsPost.hotness_rating_now.desc(), CommonsPost.created.desc())
        posts = posts.paginate(page, POSTS_PER_PAGE, False)

        next_url = url_for('followers.followers_home', page=posts.next_num) \
            if posts.has_next else None
        prev_url = url_for('followers.followers_home', page=posts.prev_num) \
            if posts.has_prev else None

    except Exception as e:
        flash("There was an error")
        return redirect(url_for('index'))

    return render_template('followers.html',
                           now=datetime.utcnow(),
                           # forms
                           subform=subform,
                           subpostcommentform=subpostcommentform,
                           mainpostform=mainpostform,
                           voteform=voteform,
                           wall_post_form=wall_post_form,
                           banuserdeleteform=banuserdeleteform,
                           lockpostform=lockpostform,
                           deletepostform=deletepostform,
                           muteuserform=muteuserform,
                           # general
                           seeifmod=seeifmod,
                           moddingcount=moddingcount,
                           seeifowner=seeifowner,
                           ownercount=ownercount,
                           thenotescount=thenotescount,
                           subid=subid,
                           navlink=navlink,
                           themsgs=themsgs,

                           usersubforums=usersubforums,
                           # queries/pagination
                           trending=trending,
                           thenotes=thenotes,
                           # stats
                           top_tippers_alltime_post_btc=top_tippers_alltime_post_btc,
                           top_tippers_pastweek_post_btc=top_tippers_pastweek_post_btc,
                           recent_tippers_post=recent_tippers_post,
                           # pagination
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,

                           currentbtcprice=currentbtcprice,
                           currentxmrprice=currentxmrprice,
                           currentbchprice=currentbchprice,
                           currentltcprice=currentltcprice,
                           )
示例#13
0
def unsub_to_forum_no_redirect(subname):
    subform = SubscribeForm()

    # get the sub
    subname = subname.lower()
    thesub = db.session.query(SubForums) \
        .filter(func.lower(SubForums.subcommon_name) == subname) \
        .first()
    if thesub is None:
        return jsonify({
            'result': 'This room does not exist.',
        })

    # get id of the sub
    subid = int(thesub.id)

    # subscribe to a sub
    if request.method == 'POST':
        if subform.validate_on_submit():
            # see if user subscribed
            if current_user.is_authenticated:
                # see if user already subbed
                if subform.unsubscribe.data is True:
                    seeifmod = db.session \
                        .query(Mods) \
                        .filter(Mods.subcommon_id == subid) \
                        .filter(Mods.user_id == current_user.id) \
                        .first()

                    if seeifmod is not None:
                        return jsonify({
                            'result': 'You are a Mod cannot unsubscribe.',
                            'thedivid': thesub.id,
                        })

                    if current_user.id == thesub.creator_user_id:
                        return jsonify({
                            'result': 'You are an owner cannot unsubscribe.',
                            'thedivid': thesub.id,
                        })

                    # get the sub query and delete it
                    unsubtoit = db.session \
                        .query(Subscribed) \
                        .filter(Subscribed.user_id == current_user.id,
                                Subscribed.subcommon_id == subid) \
                        .first()

                    # add new member to sub
                    current_members = thesub.members
                    addmembers = current_members - 1
                    thesub.members = addmembers

                    db.session.add(thesub)
                    db.session.delete(unsubtoit)
                    db.session.commit()

                    if current_user.id == thesub.creator_user_id:
                        return jsonify({
                            'result': 'Unjoined',
                            'thedivid': thesub.id,
                            'newnumber': addmembers
                        })
                else:
                    return jsonify({
                        'result': 'No Selection',
                        'thedivid': thesub.id,
                    })
            else:
                return jsonify({'result': 'Not Authorized'})
        else:
            return jsonify({'result': 'Post Error'})
示例#14
0
def subunsubtoforum(subname):
    subform = SubscribeForm()
    # get the sub

    subname = subname.lower()
    thesub = db.session \
        .query(SubForums) \
        .filter(func.lower(SubForums.subcommon_name) == subname) \
        .first()
    if thesub is None:
        flash("Sub Doesnt Exist.", category="danger")
        return redirect(url_for('index'))

    # get id of the sub
    subid = int(thesub.id)

    # subscribe to a sub
    if request.method == 'POST':
        if subform.validate_on_submit():
            # see if user subscribed
            if current_user.is_authenticated:
                # see if user already subbed

                if subform.subscribe.data is True:
                    seeifsubbed = db.session \
                        .query(Subscribed) \
                        .filter(Subscribed.user_id == current_user.id,
                                Subscribed.subcommon_id == subid) \
                        .first()

                    if seeifsubbed is None:
                        # add subscribition
                        subtoit = Subscribed(
                            user_id=current_user.id,
                            subcommon_id=subid,
                        )
                        # add new member to sub
                        current_members = thesub.members
                        addmembers = current_members + 1
                        thesub.members = addmembers

                        db.session.add(thesub)
                        db.session.add(subtoit)
                        db.session.commit()
                        flash("subscribed.", category="success")

                        return redirect(
                            url_for('subforum.sub', subname=subname))

                    else:

                        flash("You are already subbed.", category="success")
                        return redirect(
                            url_for('subforum.sub', subname=subname))
                elif subform.unsubscribe.data is True:
                    seeifmod = db.session \
                        .query(Mods) \
                        .filter(Mods.subcommon_id == subid) \
                        .filter(Mods.user_id == current_user.id) \
                        .first()
                    if seeifmod is None:
                        pass
                    else:
                        flash("Cannot unsubscribe from sub.  You are a sub",
                              category="success")
                        return redirect(
                            url_for('subforum.sub', subname=subname))

                    if current_user.id == thesub.creator_user_id:
                        flash(
                            "Cannot unsubscribe from sub.  You are a sub owner.",
                            category="success")
                        return redirect(
                            url_for('subforum.sub', subname=subname))
                    else:
                        pass

                    # get the sub query and delete it
                    unsubtoit = db.session \
                        .query(Subscribed) \
                        .filter(Subscribed.user_id == current_user.id,
                                Subscribed.subcommon_id == subid) \
                        .first()
                    # add new member to sub
                    current_members = thesub.members
                    addmembers = current_members - 1
                    thesub.members = addmembers
                    db.session.add(thesub)
                    db.session.delete(unsubtoit)
                    db.session.commit()
                    flash("unsubscribed.", category="danger")
                    return redirect(url_for('subforum.sub', subname=subname))
                else:

                    flash("No Selection", category="danger")
                    return redirect(url_for('subforum.sub', subname=subname))
            else:
                flash("User must be logged in", category='danger')
                return redirect(url_for('subforum.sub', subname=subname))
        else:
            flash("Form Error", category='danger')
            return redirect(url_for('subforum.sub', subname=subname))
示例#15
0
def sub(subname):

    # forms
    reportform = ReportForm()
    subform = SubscribeForm()
    banuserdeleteform = QuickBanDelete()
    lockpostform = QuickLock()
    deletepostform = QuickDelete()
    muteuserform = QuickMute()
    nsfwform = NSFWForm()

    navlink = 1

    currentbchprice = db.session.query(BchPrices).get(1)

    # get the sub
    thesub = db.session \
        .query(SubForums) \
        .filter(func.lower(SubForums.subcommon_name) == subname.lower()) \
        .first()

    if thesub is None:
        flash("Sub Doesnt Exist.", category="danger")
        return redirect(url_for('index'))

    if thesub.room_banned == 1:
        return redirect(url_for('subforum.sub_banned', subname=subname))
    if thesub.room_suspended == 1:
        return redirect(url_for('subforum.sub_suspended', subname=subname))
    if thesub.room_deleted == 1:
        return redirect(url_for('subforum.sub_deleted', subname=subname))
    # get the stats
    substats = db.session \
        .query(SubForumStats) \
        .filter(SubForumStats.subcommon_name == subname.lower()) \
        .first()
    # get sub customization
    subcustom_stuff = db.session \
        .query(SubForumCustom) \
        .filter(SubForumCustom.subcommon_id == thesub.id) \
        .first()
    # get sub info box
    subinfobox = db.session \
        .query(SubForumCustomInfoOne) \
        .filter(func.lower(SubForumCustomInfoOne.subcommon_name) == subname.lower()) \
        .first()

    subname = thesub.subcommon_name
    subid = int(thesub.id)

    mods = db.session \
        .query(Mods) \
        .filter(Mods.subcommon_id == subid) \
        .all()

    if subcustom_stuff is None:
        subcustom_setup = None
    else:
        subcustom_setup = 1

    # get unread messages
    if current_user.is_authenticated:
        thenotes = db.session \
            .query(Notifications) \
            .filter(Notifications.user_id == current_user.id) \
            .order_by(Notifications.timestamp.desc()) \
            .filter(Notifications.read == 0)
        thenotescount = thenotes.count()
        thenotes = thenotes.limit(25)

    else:
        thenotes = 0
        thenotescount = 0

    # see if user banned
    if current_user.is_authenticated:
        seeifbanned = db.session \
            .query(Banned) \
            .filter(current_user.id == Banned.user_id) \
            .filter(Banned.subcommon_id == subid) \
            .first()
        # if user on banned list turn him away
        if seeifbanned is not None:
            return redirect(url_for('banned', subname=subname))

    # see if current user is a mod
    if current_user.is_authenticated:
        seeifmod = db.session \
            .query(Mods) \
            .filter(Mods.subcommon_id == subid) \
            .filter(Mods.user_id == current_user.id) \
            .first()
        if seeifmod is None:
            useramod = 0
        else:
            useramod = 1
    else:
        useramod = 0

    # SIDEBAR
    if current_user.is_authenticated:
        # see if user is subscribed
        seeifsubbed = db.session.query(Subscribed)
        seeifsubbed = seeifsubbed.filter(current_user.id == Subscribed.user_id)
        seeifsubbed = seeifsubbed.filter(Subscribed.subcommon_id == subid)

        seeifsubbed = seeifsubbed.first()
        if seeifsubbed is None:
            seeifsubbed = 0
        else:
            seeifsubbed = 1
        # get users saved subcommons
        saved_subcommons = db.session.query(Subscribed) \
            .filter(Subscribed.user_id == current_user.id) \
            .all()
        # get users created subcommons
        created_subcommons = db.session.query(SubForums) \
            .filter(SubForums.creator_user_id == current_user.id) \
            .all()
    else:
        # if user isnt subscribed to anything
        seeifsubbed = None
        saved_subcommons = None
        created_subcommons = None

    if current_user.is_authenticated:
        usersubforums = db.session \
            .query(Subscribed) \
            .join(SubForums, (Subscribed.subcommon_id == SubForums.id)) \
            .filter(current_user.id == Subscribed.user_id) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .order_by((SubForums.id == 31).desc(),
                      SubForums.subcommon_name) \
            .all()
        guestsubforums = None
    else:
        guestsubforums = db.session \
            .query(SubForums) \
            .filter(SubForums.age_required == 0) \
            .filter(SubForums.type_of_subcommon == 0) \
            .filter(SubForums.room_banned == 0,
                    SubForums.room_deleted == 0,
                    SubForums.room_suspended == 0
                    ) \
            .order_by(SubForums.total_exp_subcommon.desc()) \
            .limit(20)
        usersubforums = None

    # if sub is private and user is a mod/owner
    if useramod:

        reportedposts = db.session \
            .query(ReportedPosts) \
            .filter(ReportedPosts.subcommon_name == subname) \
            .count()

        reportedcomments = db.session \
            .query(ReportedComments) \
            .filter(ReportedComments.subcommon_name == subname) \
            .count()
    else:
        reportedposts = 0
        reportedcomments = 0

    if current_user.is_authenticated:
        mainpostform = MainPostForm(
            CombinedMultiDict((request.files, request.form)), )
        mainpostform.roomname.choices = \
            [(str(row.subscriber.id), str(row.subscriber.subcommon_name)) for row in usersubforums]
    else:
        mainpostform = None

    # Get Stickies
    stickypostfrommods = db.session \
        .query(CommonsPost) \
        .filter(CommonsPost.subcommon_name == subname) \
        .filter(CommonsPost.sticky == 1) \
        .filter(CommonsPost.hidden == 0) \
        .limit(2)

    # see if user is over age
    if current_user.is_authenticated:
        if current_user.over_age is False:
            post_18 = 0
            allpost = 0
        else:
            allpost = 0
            post_18 = 1
    else:
        post_18 = 0
        allpost = 0

    # POST QUERIES
    page = request.args.get('page', 1, type=int)
    posts = db.session \
        .query(CommonsPost) \
        .filter(CommonsPost.subcommon_name == subname) \
        .filter(CommonsPost.hidden == 0) \
        .filter(or_(CommonsPost.age == post_18, CommonsPost.age == allpost)) \
        .filter(CommonsPost.sticky == 0) \
        .order_by(CommonsPost.created.desc(),
                  CommonsPost.hotness_rating_now.desc(),
                  ) \
        .paginate(page, app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('subforum.sub', subname=subname, page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('subforum.sub', subname=subname, page=posts.prev_num) \
        if posts.has_prev else None

    return render_template(
        'subforums/sub.html',
        now=datetime.utcnow(),
        mainpostform=mainpostform,
        nsfwform=nsfwform,
        subname=subname,
        thenotescount=thenotescount,
        subform=subform,
        subinfobox=subinfobox,
        subcustom_stuff=subcustom_stuff,
        subcustom_setup=subcustom_setup,
        stickypostfrommods=stickypostfrommods,
        navlink=navlink,
        reportform=reportform,
        banuserdeleteform=banuserdeleteform,
        thesub=thesub,
        subid=subid,
        substats=substats,
        usersubforums=usersubforums,
        guestsubforums=guestsubforums,
        thenotes=thenotes,
        saved_subcommons=saved_subcommons,
        created_subcommons=created_subcommons,
        seeifsubbed=seeifsubbed,
        mods=mods,
        useramod=useramod,
        lockpostform=lockpostform,
        deletepostform=deletepostform,
        muteuserform=muteuserform,
        reportedposts=reportedposts,
        reportedcomments=reportedcomments,
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
        currentbchprice=currentbchprice,
    )