A command line interface for gateoverflow links
Project description
Gateoverflow CLI
open / manage links with the question ids(which are right there, next to question title), create new lists of questions, update them etc. The codebase is heavily inspired by this fizzbuzz implementation.
Latest Release v0.5.3
Available to install through pip (pypi).
Read full changelog
Table of Contents
- Gateoverflow CLI - Latest Release v0.5.3
- Table of Contents
- Motivation
- Installation
- Requirements
- Changelog
- Usage
- Future
- Release Checklist
Motivation
Scanning QR codes from the book is really inefficient, so is the Lists
feature of Gateoverflow Website.
With this tool, one can open / manage those links with the question ids(which are right there, next to question title), create new lists (called as tags
here cause it's one too many letters shorter than lists
) of questions.
But this wasn't really the motivation, since it can be just done with a simple script, if I wanted to. I just wanted to create this project to know how far I can push myself to do a real project, which involves developing AND distributing a python project. Hope I live up to this.
I think I'll write more about this later.
Installation
-
Install python. You can skip this step if you already have python installed.
-
Make sure you have
pip
installed by executing
$ python -m pip --version
If it says something like "Module not found: pip", then you should install it.
- Open Command Prompt / Terminal, and execute
$ pip install gateoverflow
- Done! Now you can use this tool by opening a Command Prompt / Terminal and running
$ gateoverflow
The supported commands and howto's are in usage section.
Preview Release
Note - Try this only if you know what you're doing.
If you want to install a super early alpha release, which will be on dev
branch.
You can do,
$ pip install git+https://github.com/toxdes/gateoverflow-cli.git@dev
Requirements
Don't worry about this unless you are going to develop.
python >= 3.6
sqlite3
python-dateutil
requests
tabulate
toml
setuptools >= 38.6.0
wheel >= 0.31.0
twine 1.11.0
Changelog
v0.5.3
- Added
eta
command to show note of ETA from config file. - Added functionality to keep track of time spent by the user on this tool.
- Added countdown in days, with two config options
show_eta_countdown
andeta_date
. If enabled, it shows days remaining untileta_date
. create
command was not implemented until now :)- Added few aliases, bugfixes and polishing.
v0.5.0
- Added option to hide the title block (the logo-ish box of text in green color that appears on the top.), by setting
show_title
to either true or false. - Added
sample_config.toml
aspackage_data
, which means, default config file is no longer read from a string constant. It's read from thedefault_config.toml
file which will be included in the package. - Refactoring, Polished UI and Bugfixes.
Read full changelog
Usage
Parser Commands
According to this comment, it is just convinient to use the commands as following.
- If the input command is a list of comma/space separated integers, they are treated as question ids, and will be opened in the browser.
- If the input command is
#
ortags
, all created tags are listed. - If input command is mix of tags and question ids, then all of the questions are added to respective tags. If some of the mentioned tags do not exist, then the user is interactively prompted to create them.
- If input command only contains tags, then list of questions with repective tags are shown.
Commands
Command | Description | Status |
---|---|---|
# |
Alias to tags . Show list of tags. |
Implemented |
q |
Alias to quit . Exit the program normally. |
Implemented |
h |
Alias to help . Shows available commands. |
Implemented |
ls |
Alias to list. | Implemented |
quit |
Exit the program normally. | Implemented |
tags |
Show list of tags. | Implemented |
debug-toggle |
Enable/Disable debug output.(Default is disabled, unless the program is executed with -d or --debug ) |
Implemented |
crawler |
Update questions database(title and description). | Implemented |
help |
Shows available commands. | Implemented |
clear |
Clear output screen. | Implemented |
Usage Examples
Suppose the link to the question is https://gateoverflow.in/6969
, then the question ID in this case is 6969
, wherever the word Question ID
is mentioned in this context.
2345,2323,4344, #important
- would add questions2345,2323,4344
to#important
.#wrongly-attempted
- would list the questions in#wrongly-attempted
, sorted with mostly visited.tags
would list all the available tags.#recent
would be a default tag, which would store all openedquestions
.- Questions could even be added to multiple tags at the same time by doing something like
2424,23232,3234, #important, #good, #hard
to add those questions to specified tags. create
would create a new tag. E.g.create #not-so-cool
to create a tag namednot-so-cool
.
Future
I'm planning to add the following features, assuming I overcome the biggest challenge of not abandoning this.
- usage of arrow keys to select, make UX amazing.
- a "sync" mechanism that will be used to upload the db file to web, and will be shared across somehow.
- create a gui maybe a web app that starts a http browser locally and opens a link in browser, like expo does?
- maybe firebase
- add gifs of usage
- allow users to have a configuration file that allows them to change defaults e.g. shell-prefix-symbol etc.
- A documentation site.
- Travis CI?
- Currently PIP works, but create some standalone OS-specific releases?
Release Checklist
- Does it work?
- Are latest changes fetched from remote?
- Is
changelog.md
updated with changes? - Is
README.md
updated with changes? - Is Table Of Contents updated, if it is changed?
make build
succeeds without an error?- Cool.
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.
Source Distribution
Built Distribution
File details
Details for the file gateoverflow-0.5.3.tar.gz
.
File metadata
- Download URL: gateoverflow-0.5.3.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17ed83de6a5069506ae770ee78773e9f9fecbc60fa0110ee44b72065605853c1 |
|
MD5 | 74914ad96872e96ca5dc3cb7cb21a492 |
|
BLAKE2b-256 | 7bc8640fe622fa5d63ed66cb1daec2ad655228b14ee946d58f8a5d12b00c2cb3 |
File details
Details for the file gateoverflow-0.5.3-py3-none-any.whl
.
File metadata
- Download URL: gateoverflow-0.5.3-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30af1569b81af784dbd2080224f6378ee8441dd6feee6af7bc47bc09c515df3c |
|
MD5 | 9c20079ff748b9525c96c9816e7e47f3 |
|
BLAKE2b-256 | 756645a3f9d5e4b5226bc69b522937f36e9644f6f7ec9ddc5990a2d87ea41a55 |