Skip to content
This repository has been archived by the owner. It is now read-only.
Small tagger app for Fedora Community
Branch: develop
Clone or download
Pull request Compare This branch is 734 commits ahead of J5:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
alembic
apache
doc
fedmsg.d
fedoratagger
tests
.gitignore
CHANGELOG.rst
MANIFEST.in
README.rst
alembic.ini
createdb.py
fedora-tagger.spec
requirements.txt
runserver.py
runtests.sh
setup.cfg
setup.py
test-requirements.txt

README.rst

Fedora Tagger

A Flask app for helping us tag Fedora packages.

Hotkeys

j or Move the cursor to the next tag
k or Move the cursor to the previous tag
l or Upvote the currently selected tag
h or Downvote the currently selected tag
n Move to a new random package
b Display the leaderboard
t Display package and tag statistics
s Search for packages to tag
esc Display this help message

The following commands require authentication:

i or a Add new tags to the currently selected package

Hacking on Fedora Tagger

You can set up a development environment on Fedora 27+ like this:

# Create a virtualenv
$ sudo dnf install -y python2-virtualenvwrapper
$ mkvirtualenv tagger

# Configure virtualenvwrapper for your shell
$ echo -e '\nexport WORKON_HOME=$HOME/.virtualenvs\nsource /usr/bin/virtualenvwrapper.sh' >> ~/.bashrc
$ source ~/.bashrc
$ workon tagger

# Install dependencies
$ pip install kitchen paver
$ pip install git+https://github.com/fedora-infra/python-fedora.git
$ pip install -r requirements.txt

# Run the tests
$ pip install -r test-requirements.txt
$ ./runtests.sh        # can take a long time

# Install the egg link
$ python setup.py develop

# Create a dev database
$ python createdb.py --with-dev-data

# Run the development server
$ python runserver.py

And lastly point your browser at http://localhost:5000.

The REST API

Visit http://localhost:5000/api/v1/ for some HTML docs. You can use the awesome HTTPie to try it from the command line:

$ sudo dnf -y install httpie

You can GET Tagger's data on a package:

$ http get http://localhost:5000/api/v1/nethack/
HTTP/1.1 200 OK
Connection: close
Content-Length: 750
Content-Type: application/json
Date: Wed, 10 Apr 2013 01:46:58 GMT
Server: Apache/2.2.15 (Red Hat)

{
    "icon": "https://apps.fedoraproject.org/packages/images/icons/package_128x128.png",
    "name": "nethack",
    "rating": -1.0,
    "summary": "",
    "tags": [
        {
            "dislike": 0,
            "like": 5,
            "package": "nethack",
            "tag": "games",
            "total": 5,
            "votes": 5
        },
        {
            "dislike": 0,
            "like": 4,
            "package": "nethack",
            "tag": "rogue-like",
            "total": 4,
            "votes": 4
        },
        {
            "dislike": 0,
            "like": 4,
            "package": "nethack",
            "tag": "the greatest game ever made",
            "total": 4,
            "votes": 4
        },
        {
            "dislike": 0,
            "like": 4,
            "package": "nethack",
            "tag": "@",
            "total": 4,
            "votes": 4
        }
    ]
}

Or PUT your rating on a package:

$ http put http://localhost:5000/api/v1/rating/nethack/ pkgname=nethack rating=100
HTTP/1.1 200 OK
Connection: close
Content-Length: 97
Content-Type: application/json
Date: Wed, 10 Apr 2013 01:49:07 GMT
Server: Apache/2.2.15 (Red Hat)

{
    "messages": [
        "Rating on package \"nethack\" changed to \"100\""
    ],
    "output": "ok"
}

Or PUT your vote on a particular tag:

$ http put http://localhost:5000/api/v1/vote/nethack/ pkgname=nethack tag=rogue-like vote=1
HTTP/1.1 200 OK
Connection: close
Content-Length: 353
Content-Type: application/json
Date: Wed, 10 Apr 2013 01:53:32 GMT
Server: Apache/2.2.15 (Red Hat)

{
    "messages": [
        "Vote added on the tag \"rogue-like\" of the package \"nethack\""
    ],
    "output": "ok",
    "tag": {
        "dislike": 0,
        "like": 5,
        "package": "nethack",
        "tag": "rogue-like",
        "total": 5,
        "votes": 5
    },
    "user": {
        "anonymous": true,
        "rank": -1,
        "username": "anonymous",
        "votes": 8
    }
}
You can’t perform that action at this time.