Skip to main content

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.

Table of Contents

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

  1. Install python. You can this step if you already have python installed.
  2. Open Command Prompt / Terminal, and execute
$ pip install gateoverflow
  1. Done! Now you can use this tool by opening a Command Prompt / Terminal and running
$ gateoverflow

Requirements

Don't worry about this unless you are going to develop.

  • python >= 3.6
  • sqlite3
  • python-dateutil
  • requests
  • tabulate

Changelog

v0.3.1

  1. listing recents shows title and description of the question now.
  2. delete possibly invalid questions
  3. Parser barely works, as specified in link
  4. Major refactor, queries and debug-outputs.
  5. debug mode.
  6. Available on PyPI now. Yay!

v0.2.0

  1. updated makefile to have a build target
  2. changed behaviour of ls command. Now it only lists recents
  3. refactor, and removing unnecessary code

Read full changelog

Usage

Parser Commands

According to this comment, it is just convinient to use the commands as following.

  1. 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.
  2. If the input command is # or tags, all created tags are listed.
  3. 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.
  4. 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 questions 2345,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 opened questions.
  • 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 named not-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

  1. Does it work?
  2. Are changes merged with master?
  3. Is changelog.md updated with changes?
  4. Is README.md updated with changes?
  5. Is Table Of Contents updated, if it is changed, which can be generated from here?
  6. Am I on master branch right now?
  7. make build succeeds without an error?
  8. Cool.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gateoverflow-0.3.1.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

gateoverflow-0.3.1-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file gateoverflow-0.3.1.tar.gz.

File metadata

  • Download URL: gateoverflow-0.3.1.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for gateoverflow-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1f392cd30f534212d9e27632d501d7d13c408b2f5e4b9937d8a7d30f36a95347
MD5 1d75eaae50686c4de245642c0000dc18
BLAKE2b-256 5c003674c6cf03c35e24d29ecd06a4c4fe1bc864aa7a20231a64e0fe30522445

See more details on using hashes here.

File details

Details for the file gateoverflow-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: gateoverflow-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for gateoverflow-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0656d02ce6c36ba11559a62f7a8a63ec45e09b4e81bb18c062af5752839d13c
MD5 8c5f72b18212ad3fff6a8a807c7788c0
BLAKE2b-256 3bd36cc6a4a6d3a0ddd06ab2a2b9ddc8ed26792c1a7da2a2b66d3bfc72be9b20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page