Пример #1
0
def submit_character_post_(request):
    form = request.web_input(submitfile="", thumbfile="", title="", age="", gender="",
                             height="", weight="", species="", rating="", friends="",
                             content="", tags="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    if not define.is_vouched_for(request.userid):
        raise WeasylError("vouchRequired")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    c = orm.Character()
    c.age = form.age
    c.gender = form.gender
    c.height = form.height
    c.weight = form.weight
    c.species = form.species
    c.char_name = form.title
    c.content = form.content
    c.rating = rating

    charid = character.create(request.userid, c, form.friends, tags,
                              form.thumbfile, form.submitfile)
    raise HTTPSeeOther(location="/manage/thumbnail?charid=%i" % (charid,))
Пример #2
0
def submit_literary_post_(request):
    form = request.web_input(submitfile="", coverfile="boop", thumbfile="", title="",
                             folderid="", subtype="", rating="", friends="", critique="",
                             content="", tags="", embedlink="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    s = orm.Submission()
    s.title = form.title
    s.rating = rating
    s.content = form.content
    s.folderid = define.get_int(form.folderid) or None
    s.subtype = define.get_int(form.subtype)

    submitid, thumb = submission.create_literary(
        request.userid, s, embedlink=form.embedlink, friends_only=form.friends, tags=tags,
        coverfile=form.coverfile, thumbfile=form.thumbfile, submitfile=form.submitfile,
        critique=form.critique, create_notifications=('nonotification' not in form))
    if thumb:
        raise HTTPSeeOther(location="/manage/thumbnail?submitid=%i" % (submitid,))
    else:
        raise HTTPSeeOther(location="/submission/%i/%s" % (submitid, slug_for(form.title)))
Пример #3
0
    def POST(self):
        form = web.input(title="",
                         rating="",
                         friends="",
                         members="",
                         content="",
                         tags="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        j = orm.Journal()
        j.title = form.title
        j.rating = rating
        j.content = form.content
        journalid = journal.create(self.user_id,
                                   j,
                                   friends_only=form.friends,
                                   tags=tags)
        raise web.seeother("/journal/%i/%s" %
                           (journalid, slug_for(form.title)))
Пример #4
0
    def POST(self):
        form = web.input(submitfile="", thumbfile="", title="", folderid="",
                         subtype="", rating="", friends="", critique="", content="",
                         tags="", imageURL="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        s = orm.Submission()
        s.title = form.title
        s.rating = rating
        s.content = form.content
        s.folderid = define.get_int(form.folderid) or None
        s.subtype = define.get_int(form.subtype)

        submitid = submission.create_visual(
            self.user_id, s, friends_only=form.friends, tags=tags,
            imageURL=form.imageURL, thumbfile=form.thumbfile, submitfile=form.submitfile,
            critique=form.critique, create_notifications=('nonotification' not in form))

        if 'customthumb' in form:
            raise web.seeother("/manage/thumbnail?submitid=%i" % (submitid,))
        else:
            raise web.seeother("/submission/%i/%s" % (submitid, slug_for(form.title)))
Пример #5
0
    def POST(self):
        form = web.input(submitfile="", coverfile="", thumbfile="", embedlink="",
                         title="", folderid="", subtype="", rating="", friends="",
                         critique="", content="", tags="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        s = orm.Submission()
        s.title = form.title
        s.rating = rating
        s.content = form.content
        s.folderid = define.get_int(form.folderid) or None
        s.subtype = define.get_int(form.subtype)

        autothumb = ('noautothumb' not in form)

        submitid, thumb = submission.create_multimedia(
            self.user_id, s, embedlink=form.embedlink, friends_only=form.friends, tags=tags,
            coverfile=form.coverfile, thumbfile=form.thumbfile, submitfile=form.submitfile,
            critique=form.critique, create_notifications=('nonotification' not in form),
            auto_thumb=autothumb)
        if thumb and not autothumb:
            raise web.seeother("/manage/thumbnail?submitid=%i" % (submitid,))
        else:
            raise web.seeother("/submission/%i/%s" % (submitid, slug_for(form.title)))
Пример #6
0
def submit_visual_post_(request):
    form = request.web_input(submitfile="", thumbfile="", title="", folderid="",
                             subtype="", rating="", friends="", critique="", content="",
                             tags="", imageURL="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    if not define.is_vouched_for(request.userid):
        raise WeasylError("vouchRequired")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    s = orm.Submission()
    s.title = form.title
    s.rating = rating
    s.content = form.content
    s.folderid = define.get_int(form.folderid) or None
    s.subtype = define.get_int(form.subtype)
    s.submitter_ip_address = request.client_addr
    s.submitter_user_agent_id = get_user_agent_id(ua_string=request.user_agent)

    submitid = submission.create_visual(
        request.userid, s, friends_only=form.friends, tags=tags,
        imageURL=form.imageURL, thumbfile=form.thumbfile, submitfile=form.submitfile,
        critique=form.critique, create_notifications=('nonotification' not in form))

    if 'customthumb' in form:
        raise HTTPSeeOther(location="/manage/thumbnail?submitid=%i" % (submitid,))
    else:
        raise HTTPSeeOther(location="/submission/%i/%s" % (submitid, slug_for(form.title)))
Пример #7
0
def submit_character_post_(request):
    form = request.web_input(submitfile="", thumbfile="", title="", age="", gender="",
                             height="", weight="", species="", rating="", friends="",
                             content="", tags="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    c = orm.Character()
    c.age = form.age
    c.gender = form.gender
    c.height = form.height
    c.weight = form.weight
    c.species = form.species
    c.char_name = form.title
    c.content = form.content
    c.rating = rating

    charid = character.create(request.userid, c, form.friends, tags,
                              form.thumbfile, form.submitfile)
    raise HTTPSeeOther(location="/manage/thumbnail?charid=%i" % (charid,))
Пример #8
0
def submit_journal_post_(request):
    form = request.web_input(title="",
                             rating="",
                             friends="",
                             members="",
                             content="",
                             tags="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    j = orm.Journal()
    j.title = form.title
    j.rating = rating
    j.content = form.content
    journalid = journal.create(request.userid,
                               j,
                               friends_only=form.friends,
                               tags=tags)
    raise HTTPSeeOther(location="/journal/%i/%s" %
                       (journalid, slug_for(form.title)))
Пример #9
0
def submit_tags_(request):
    if not define.is_vouched_for(request.userid):
        raise WeasylError("vouchRequired")

    form = request.web_input(submitid="",
                             charid="",
                             journalid="",
                             preferred_tags_userid="",
                             optout_tags_userid="",
                             tags="")

    tags = searchtag.parse_tags(form.tags)

    submitid = define.get_int(form.submitid)
    charid = define.get_int(form.charid)
    journalid = define.get_int(form.journalid)
    preferred_tags_userid = define.get_int(form.preferred_tags_userid)
    optout_tags_userid = define.get_int(form.optout_tags_userid)

    result = searchtag.associate(request.userid, tags, submitid, charid,
                                 journalid, preferred_tags_userid,
                                 optout_tags_userid)
    if result:
        failed_tag_message = ""
        if result["add_failure_restricted_tags"] is not None:
            failed_tag_message += "The following tags have been restricted from being added to this item by the content owner, or Weasyl staff: **" + result[
                "add_failure_restricted_tags"] + "**. \n"
        if result["remove_failure_owner_set_tags"] is not None:
            failed_tag_message += "The following tags were not removed from this item as the tag was added by the owner: **" + result[
                "remove_failure_owner_set_tags"] + "**.\n"
        failed_tag_message += "Any other changes to this item's tags were completed."
    if submitid:
        location = "/submission/%i" % (submitid, )
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(
                define.errorpage(request.userid, failed_tag_message,
                                 [["Return to Content", location]]))
    elif charid:
        location = "/character/%i" % (charid, )
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(
                define.errorpage(request.userid, failed_tag_message,
                                 [["Return to Content", location]]))
    elif journalid:
        location = "/journal/%i" % (journalid, )
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(
                define.errorpage(request.userid, failed_tag_message,
                                 [["Return to Content", location]]))
    else:
        raise HTTPSeeOther(location="/control/editcommissionsettings")
Пример #10
0
def submit_multimedia_post_(request):
    form = request.web_input(submitfile="",
                             coverfile="",
                             thumbfile="",
                             embedlink="",
                             title="",
                             folderid="",
                             subtype="",
                             rating="",
                             friends="",
                             critique="",
                             content="",
                             tags="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    s = orm.Submission()
    s.title = form.title
    s.rating = rating
    s.content = form.content
    s.folderid = define.get_int(form.folderid) or None
    s.subtype = define.get_int(form.subtype)

    autothumb = ('noautothumb' not in form)

    submitid, thumb = submission.create_multimedia(
        request.userid,
        s,
        embedlink=form.embedlink,
        friends_only=form.friends,
        tags=tags,
        coverfile=form.coverfile,
        thumbfile=form.thumbfile,
        submitfile=form.submitfile,
        critique=form.critique,
        create_notifications=('nonotification' not in form),
        auto_thumb=autothumb)
    if thumb and not autothumb:
        raise HTTPSeeOther(location="/manage/thumbnail?submitid=%i" %
                           (submitid, ))
    else:
        raise HTTPSeeOther(location="/submission/%i/%s" %
                           (submitid, slug_for(form.title)))
Пример #11
0
    def POST(self):
        form = web.input(submitid="", charid="", journalid="", tags="")

        tags = searchtag.parse_tags(form.tags)

        submitid = define.get_int(form.submitid)
        charid = define.get_int(form.charid)
        journalid = define.get_int(form.journalid)

        searchtag.associate(self.user_id, tags, submitid, charid, journalid)
        if submitid:
            raise web.seeother("/submission/%i" % (submitid,))
        elif charid:
            raise web.seeother("/character/%i" % (charid,))
        else:
            raise web.seeother("/journal/%i" % (journalid,))
Пример #12
0
    def POST(self):
        form = web.input(submitid="", charid="", journalid="", tags="")

        tags = searchtag.parse_tags(form.tags)

        submitid = define.get_int(form.submitid)
        charid = define.get_int(form.charid)
        journalid = define.get_int(form.journalid)

        searchtag.associate(self.user_id, tags, submitid, charid, journalid)
        if submitid:
            raise web.seeother("/submission/%i" % (submitid, ))
        elif charid:
            raise web.seeother("/character/%i" % (charid, ))
        else:
            raise web.seeother("/journal/%i" % (journalid, ))
Пример #13
0
def submit_tags_(request):
    form = request.web_input(submitid="", charid="", journalid="", tags="")

    tags = searchtag.parse_tags(form.tags)

    submitid = define.get_int(form.submitid)
    charid = define.get_int(form.charid)
    journalid = define.get_int(form.journalid)

    searchtag.associate(request.userid, tags, submitid, charid, journalid)
    if submitid:
        raise HTTPSeeOther(location="/submission/%i" % (submitid,))
    elif charid:
        raise HTTPSeeOther(location="/character/%i" % (charid,))
    else:
        raise HTTPSeeOther(location="/journal/%i" % (journalid,))
Пример #14
0
    def POST(self):
        form = web.input(submitfile="",
                         coverfile="boop",
                         thumbfile="",
                         title="",
                         folderid="",
                         subtype="",
                         rating="",
                         friends="",
                         critique="",
                         content="",
                         tags="",
                         embedlink="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        s = orm.Submission()
        s.title = form.title
        s.rating = rating
        s.content = form.content
        s.folderid = define.get_int(form.folderid) or None
        s.subtype = define.get_int(form.subtype)

        submitid, thumb = submission.create_literary(
            self.user_id,
            s,
            embedlink=form.embedlink,
            friends_only=form.friends,
            tags=tags,
            coverfile=form.coverfile,
            thumbfile=form.thumbfile,
            submitfile=form.submitfile,
            critique=form.critique,
            create_notifications=('nonotification' not in form))
        if thumb:
            raise web.seeother("/manage/thumbnail?submitid=%i" % (submitid, ))
        else:
            raise web.seeother("/submission/%i/%s" %
                               (submitid, slug_for(form.title)))
Пример #15
0
    def POST(self):
        form = web.input(title="", rating="", friends="", members="", content="", tags="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        j = orm.Journal()
        j.title = form.title
        j.rating = rating
        j.content = form.content
        journalid = journal.create(self.user_id, j, friends_only=form.friends,
                                   tags=tags)
        raise web.seeother("/journal/%i/%s" % (journalid, slug_for(form.title)))
Пример #16
0
def submit_journal_post_(request):
    form = request.web_input(title="", rating="", friends="", members="", content="", tags="")

    tags = searchtag.parse_tags(form.tags)

    if not define.config_read_bool("allow_submit"):
        raise WeasylError("FeatureDisabled")

    rating = ratings.CODE_MAP.get(define.get_int(form.rating))
    if not rating:
        raise WeasylError("ratingInvalid")

    j = orm.Journal()
    j.title = form.title
    j.rating = rating
    j.content = form.content
    journalid = journal.create(request.userid, j, friends_only=form.friends,
                               tags=tags)
    raise HTTPSeeOther(location="/journal/%i/%s" % (journalid, slug_for(form.title)))
Пример #17
0
def submit_tags_(request):
    form = request.web_input(submitid="", charid="", journalid="", preferred_tags_userid="", optout_tags_userid="", tags="")

    tags = searchtag.parse_tags(form.tags)

    submitid = define.get_int(form.submitid)
    charid = define.get_int(form.charid)
    journalid = define.get_int(form.journalid)
    preferred_tags_userid = define.get_int(form.preferred_tags_userid)
    optout_tags_userid = define.get_int(form.optout_tags_userid)

    result = searchtag.associate(request.userid, tags, submitid, charid, journalid, preferred_tags_userid, optout_tags_userid)
    if result:
        failed_tag_message = ""
        if result["add_failure_restricted_tags"] is not None:
            failed_tag_message += "The following tags have been restricted from being added to this item by the content owner, or Weasyl staff: **" + result["add_failure_restricted_tags"] + "**. \n"
        if result["remove_failure_owner_set_tags"] is not None:
            failed_tag_message += "The following tags were not removed from this item as the tag was added by the owner: **" + result["remove_failure_owner_set_tags"] + "**.\n"
        failed_tag_message += "Any other changes to this item's tags were completed."
    if submitid:
        location = "/submission/%i" % (submitid,)
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(define.errorpage(request.userid, failed_tag_message,
                                             [["Return to Content", location]]))
    elif charid:
        location = "/character/%i" % (charid,)
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(define.errorpage(request.userid, failed_tag_message,
                                             [["Return to Content", location]]))
    elif journalid:
        location = "/journal/%i" % (journalid,)
        if not result:
            raise HTTPSeeOther(location=location)
        else:
            return Response(define.errorpage(request.userid, failed_tag_message,
                                             [["Return to Content", location]]))
    else:
        raise HTTPSeeOther(location="/control/editcommissionsettings")
Пример #18
0
    def POST(self):
        form = web.input(submitfile="",
                         thumbfile="",
                         title="",
                         age="",
                         gender="",
                         height="",
                         weight="",
                         species="",
                         rating="",
                         friends="",
                         content="",
                         tags="")

        tags = searchtag.parse_tags(form.tags)

        if not define.config_read_bool("allow_submit"):
            raise WeasylError("FeatureDisabled")

        rating = ratings.CODE_MAP.get(define.get_int(form.rating))
        if not rating:
            raise WeasylError("ratingInvalid")

        c = orm.Character()
        c.age = form.age
        c.gender = form.gender
        c.height = form.height
        c.weight = form.weight
        c.species = form.species
        c.char_name = form.title
        c.content = form.content
        c.rating = rating

        charid = character.create(self.user_id, c, form.friends, tags,
                                  form.thumbfile, form.submitfile)
        raise web.seeother("/manage/thumbnail?charid=%i" % (charid, ))
Пример #19
0
from __future__ import absolute_import, unicode_literals

import pytest

from libweasyl import staff
from libweasyl.models.helpers import CharSettings

from weasyl import profile, searchtag
from weasyl.error import WeasylError
from weasyl.test import db_utils

# Tag sets for testing
tags = searchtag.parse_tags("omega_ruby, alpha_sapphire, diamond, pearl")
tags_two = searchtag.parse_tags("omega_ruby, alpha_sapphire, diamond")


@pytest.mark.usefixtures('db')
def test_TargetRecordMissing_WeasylError_if_item_record_missing_or_invalid():
    userid_tag_adder = db_utils.create_user()

    with pytest.raises(WeasylError) as err:
        searchtag.associate(userid_tag_adder, tags, submitid=666)
    assert err.value.value == "TargetRecordMissing"

    with pytest.raises(WeasylError) as err:
        searchtag.associate(userid_tag_adder, tags, charid=666)
    assert err.value.value == "TargetRecordMissing"

    with pytest.raises(WeasylError) as err:
        searchtag.associate(userid_tag_adder, tags, journalid=666)
    assert err.value.value == "TargetRecordMissing"