App for viewing, posting, reposting, and deleting your Kijiji ads
Project description
Kijiji Manager
Kijiji Manager app for viewing, posting, reposting, and deleting your Kijiji ads.
Built using the Flask framework with Python 3.6+. Completely API driven, with no web scraping. Runs a local webserver which provides the web user interface.
Kijiji Manager is able to handle all types of ads under every Kijiji category (although not every ad type has been extensively tested).
If you find any bugs with posting ads, please create a new issue to report it.
Requirements
Kijiji Manager requires Python 3.6+.
Minimum dependencies
Flask
Flask-WTF
Flask-Login
Flask-Executor
WTForms
httpx
xmltodict
is-safe-url
phonenumbers
Installation
- Install from source
- Clone this repository
git clone https://github.com/jackm/kijiji-manager.git cd kijiji-manager
- Create a new virtualenv (optional but highly recommended)
python3 -m venv venv source venv/bin/activate
- When using a virtualenv, you must source the
venv/bin/activate
script each time you start a new shell, otherwise the installed Python packages will not be available - If using a Debian based Linux distro, and the venv Python library is not found or if there is an error about missing ensurepip, you will have to apt install
python3-venv
first - If using Windows, you may have to use the
py
command in place ofpython
orpython3
- If using Windows, the activate script will be at
venv/Scripts/Activate
instead - See the Python virtual environments tutorial for more information
- When using a virtualenv, you must source the
- Install the kijiji-manager package from the current directory
pip install .
- Clone this repository
- Copy the sample config file at
kijiji_manager/kijiji-manager-sample.cfg
and rename it tokijiji-manager.cfg
, putting it in the instance folder- Create a folder named
instance
at the root of this repository if it does not exist
- Create a folder named
- Edit the secret key variable on the first line in
instance/kijiji-manager.cfg
to a random value- To generate a random value you can run the following and copy the output:
python -c "import secrets; print(secrets.token_urlsafe(16))"
- To generate a random value you can run the following and copy the output:
- Run the app from a shell/terminal:
python -m kijiji_manager
orkijiji-manager -c instance/kijiji-manager.cfg
- Append
--help
to see all possible command line arguments
- Append
- Open a browser and go to http://localhost:5000/ or http://127.0.0.1:5000/
- Cookies must be enabled in order to log in
- Login using an existing Kijiji account
- You must register for a new account on kijiji.ca if you do not yet have one
For all subsequent runs, start the app again using python -m kijiji_manager
or kijiji-manager -c instance/kijiji-manager.cfg
and then go to the web interface in your browser.
You can also leave the app running in the terminal if you wish.
No background HTTP calls are made unless you refresh or load new pages.
Command line arguments
usage: kijiji-manager [-h] [-c CONFIG] [-b BIND] [-p PORT] [-d]
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
path to config file
-b BIND, --bind BIND interface to bind to (default: localhost)
-p PORT, --port PORT port to bind to (default: 5000)
-d, --debug enable debugging
Screenshots
Credits
Many of the core architecture concepts have been borrowed from the Kijiji-Reposter project. Many thanks to rybodiddly for the work they have done, especially on the Kijiji API.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.