Giter Site home page Giter Site logo

noisrucer / girok Goto Github PK

View Code? Open in Web Editor NEW
454.0 9.0 11.0 171.54 MB

A powerful and beautiful CLI scheduler

License: GNU General Public License v3.0

Python 97.55% CSS 2.45%
cli cli-app command-line python python3 rich scheduler task-manager task-scheduler textual

girok's Introduction

Hi there ๐Ÿ‘‹

I'm a 3rd year computer science student from the University of Hong Kong.

Contact: [email protected]

noisrucer's GitHub stats

girok's People

Contributors

noisrucer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

girok's Issues

Can I run it self-hosted?

Current Readme says "Girok is running on AWS server [...]".

Can I run it self-hosted on my own server?

Deadline options for chdate

Description

girok chdate should accept date shorthands as arguments rather than explicit date only.

Purpose

When creating a task, it's easy to set something to (for instance) today or tomorrow with --tdy and --tmr. But if I want to update a task with girok chdate, I can't pass these arguments or use shorthands like girok chdate -d today. This would be helpful when updating tasks.

Add help command without hyphen

Description

Allow for the help page to be displayed with girok help instead of girok --help.

Purpose

Minor QoL improvement.

Comments

Password Recovery

Description

I think it's a good idea to make available a change password, I haven't used Girok in a while since I forgot my password and I cannot create a new account nor change it.

Purpose

Make easy to recover lost passwords

Comments

'

Bug Description

Bug Simulation

Error Message

Screenshots

Add `girok done --force` or similar

Description

Allow marking of a task as done without responding to the Are you sure y/N? prompt.

Purpose

When making aliases, cli tools, etc. it will be helpful to allow a task to be marked as done without responding to an interactive prompt, so explicitly overriding it when you are sure would be a useful feature, e.g girok done 12 --yes.

Categories don't accept accented letters

Bug Description

(First of all, loving the program!)
When adding a category and giving it a name that includes accented letters, etc. girok gives an error.

Bug Simulation

Type in "girok addcat NAME", and include a letter with accent or a letter outside of the english alphabet. I typed in "girok addcat Tรณnlist". If I type in "girok addcat Tonlist" there is no error.

Error Message

Invalid value for 'CAT': [Invalid category path] Category path must be in 'xx/yy/zz format.'

Screenshots

girok-error

girok installs successfully but won't run due to not being on PATH

Bug Description

I'm running Fedora 39: Linux [hostname] 6.7.6-200.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Feb 23 18:27:29 UTC 2024 x86_64 GNU/Linux. Python version is 3.12.2.

Upon executing pip install girok I get the following output, with a warning at the end:

Defaulting to user installation because normal site-packages is not writeable
Collecting girok
  Obtaining dependency information for girok from https://files.pythonhosted.org/packages/1a/93/197fdb2d65751ea9ca63c5c021f6d090a25092a22322619838a21060ace8/girok-0.2.5-py3-none-any.whl.metadata
  Using cached girok-0.2.5-py3-none-any.whl.metadata (25 kB)
Requirement already satisfied: requests<3.0.0,>=2.31.0 in ./.local/lib/python3.12/site-packages (from girok) (2.31.0)
Requirement already satisfied: textual<0.49.0,>=0.48.1 in ./.local/lib/python3.12/site-packages (from girok) (0.48.2)
Requirement already satisfied: typer[all]<0.10.0,>=0.9.0 in ./.local/lib/python3.12/site-packages (from girok) (0.9.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->girok) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->girok) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->girok) (1.26.18)
Requirement already satisfied: certifi>=2017.4.17 in ./.local/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->girok) (2024.2.2)
Requirement already satisfied: markdown-it-py[linkify,plugins]>=2.1.0 in ./.local/lib/python3.12/site-packages (from textual<0.49.0,>=0.48.1->girok) (3.0.0)
Requirement already satisfied: rich>=13.3.3 in ./.local/lib/python3.12/site-packages (from textual<0.49.0,>=0.48.1->girok) (13.7.1)
Requirement already satisfied: typing-extensions<5.0.0,>=4.4.0 in ./.local/lib/python3.12/site-packages (from textual<0.49.0,>=0.48.1->girok) (4.10.0)
Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/lib/python3.12/site-packages (from typer[all]<0.10.0,>=0.9.0->girok) (8.1.3)
Requirement already satisfied: colorama<0.5.0,>=0.4.3 in ./.local/lib/python3.12/site-packages (from typer[all]<0.10.0,>=0.9.0->girok) (0.4.6)
Requirement already satisfied: shellingham<2.0.0,>=1.3.0 in ./.local/lib/python3.12/site-packages (from typer[all]<0.10.0,>=0.9.0->girok) (1.5.4)
Requirement already satisfied: mdurl~=0.1 in ./.local/lib/python3.12/site-packages (from markdown-it-py[linkify,plugins]>=2.1.0->textual<0.49.0,>=0.48.1->girok) (0.1.2)
Requirement already satisfied: linkify-it-py<3,>=1 in ./.local/lib/python3.12/site-packages (from markdown-it-py[linkify,plugins]>=2.1.0->textual<0.49.0,>=0.48.1->girok) (2.0.3)
Requirement already satisfied: mdit-py-plugins in ./.local/lib/python3.12/site-packages (from markdown-it-py[linkify,plugins]>=2.1.0->textual<0.49.0,>=0.48.1->girok) (0.4.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/lib/python3.12/site-packages (from rich>=13.3.3->textual<0.49.0,>=0.48.1->girok) (2.15.1)
Requirement already satisfied: uc-micro-py in ./.local/lib/python3.12/site-packages (from linkify-it-py<3,>=1->markdown-it-py[linkify,plugins]>=2.1.0->textual<0.49.0,>=0.48.1->girok) (1.0.3)
Using cached girok-0.2.5-py3-none-any.whl (62 kB)
Installing collected packages: girok
  WARNING: The script girok is installed in '/home/[username]/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed girok-0.2.5

The interesting thing is when I experiment to see if girok really has successfully installed by cd'ing to ~/.local/bin and running girok --help, I get this: zsh: girok: command not found...

So I guess I have a couple of questions:

  1. Is the installation script expected to not install girok on PATH? I can certainly add it to PATH if needed, but am curious if this is expected behaviour or a bug before I add it to PATH.
  2. Will adding girok to PATH resolve zsh's claim that the girok command can't be found?

Many thanks.

Password is limited to 30 characters

Bug Description

Girok looks slick! I went to register and received the following warning when my password was greater than the allowed characters. Girok let me register anyways and now I am unable to log in.

Bug Simulation

Error Message

 [{'loc': ['body', 'password'], 'msg': 'ensure this value has at most 30 characters', 'type': 'value_error.any_str.max_length', 'ctx': {'limit_value': 30}}]

Screenshots

Screen Shot 2023-03-29 at 9 29 48 AM

Not able to install

Running pip3 install girok
Get:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x10e689160>: Failed to establish a new connection: [Errno 9] Bad file descriptor')': /simple/girok/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x10e689610>: Failed to establish a new connection: [Errno 9] Bad file descriptor')': /simple/girok/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x10e6897f0>: Failed to establish a new connection: [Errno 9] Bad file descriptor')': /simple/girok/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x10e6899a0>: Failed to establish a new connection: [Errno 9] Bad file descriptor')': /simple/girok/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x10e689b50>: Failed to establish a new connection: [Errno 9] Bad file descriptor')': /simple/girok/ ERROR: Could not find a version that satisfies the requirement girok (from versions: none) ERROR: No matching distribution found for girok

Custom Keybinds

Description

A Feature to edit & change Keybinds. A Full-Fledged settings-page or simple keymap dialog

Purpose

Changing the keymap is good for a multitude of reasons.

  • not everybody knows vim-keybinds
  • some people use different keybinds than vim
  • better accessibility

Comments

I could try to help via PR, just tell me how or what you think about the idea

Dynamic Layout in girok cal

Description

A config-option to change the size-ratio of the side-bar & main window

Purpose

  • better support for more individual setups
  • accessibility

better girok cal support for portrait mode monitors, hide cal view with shortcut

Description

problem:
image
in portrait mode monitor setups, it cuts off the categories.

3 possible solutions:

  1. favorite and easiest solution for now: add shortcut similar to f, that hides calendar instead.

  2. please decrease the space on the left if girok detects words are getting cut off

  3. add option for making side bar a bottom bar

Purpose

to better be able to see categories with smaller screen widths

Comments

Exclude the resources folder from the package

Description

Just installed Girok.

The Girok package itself is ~ 23MB in size when downloading and when it is on disk. Pretty much the entire application size is taken by the resources (/site-packages/girok/resources) folder which contains files that demo the application for the github page. The rest of the files total to 792KB.

Please consider excluding it to make the package an order of magnitude smaller.

Thanks!

[Feat] Guest mode

Description

  • Many users want guest mode in which they do not need to register for a new account
  • Supports synchronization with the account when users wish to register later
  • girok push and girok pull commands

[Feat] A group of new minor features for `v0.2.0`

Description

  1. Multi-select tasks for done command (ex. done 1 15 18 20)
  2. Add complete status instead of only being able to delete a task (colored icons for status)
  3. Meta-data of a task.
    • Markdown editor
    • View the markdown file in a nicely-formatted TUI box
  4. flush command to delete a group of tasks easily
    • flush --past: delete all passed tasks
    • flush --complete: delete all completed tasks (from 2)
  5. Support powerful task statistics
    • How many tasks are completed/remaining for today, each category, total, etc.
  6. User-customized key bindings
  7. Add more colors for category (probably up to 10~13)
  8. A way to deal with a small-width monitor (category tree is cut off)
  9. Recurring events
    • Recurring on one or multiple weekdays
    • Recurring everyday
  10. Weekly schedule command (Current week)
    • Also support TUI like calendar?
    • Or just print it out in the terminal?
  11. Password recovery
  12. Support --color option for creating a category

Purpose

Comments

The above features will be added altogether at once to avoid frequent minor updates.

Missing LICENSE

I see you have no LICENSE file for this project. The default is copyright.

I would suggest releasing the code under the GPL-3.0-or-later or AGPL-3.0-or-later license so that others are encouraged to contribute changes back to your project.

Way to add categories to tasks by number just like you can delete tasks by number, and/or lazy typing

Description

its difficult to always type out category names, and other stuff in general over and over.
For those who have only a couple categories, its not hard to memorize their order.

if the first category was home, id love to do :
girok addtask --tdy 'do laundry' -c 1
or
girok addtask --tdy 'do laundry' -c h

another thing that might also help making adding tasks easier for super users is if you let us do at for addtask:
girok at --tdy 'do laundry' 1
or
girok at --tdy 'something' h

since in bash rc i set g to girok, all id have to do is:
g at --tdy 'something' 1

that would be epic.

To make it more intuitive add in the help an option for superuser command to the list, which would list out alternative shortcuts, and other super user settings:
girok superuser >>

list of super user commands:
at = addtask
ac = addcat
sc = showcat
dn = done
tg = showtag
st = showtask

in cal mode, c pops up categories, t pops up tags. 

Purpose

to make it easier to add categories to tasks

Comments

but for newcomers, I do like the explicitly typed out commands like showtag and add task, so i wouldn't make the commands shorter for default or add them to the task commands list in help, because being presented with too many ways of doing something in help could be overwhelming for newbies. I currently like the simple and explicit help.

for nested categories, you could do a -1.2

vdirsyncer-compatible data store

Description

Is it within scope to support a directory of iCal files for the backing data store?

Purpose

Integrate with vdirsyncer to support cloud-based syncing with other platforms and clients.

Comments

Understandable if it's not within scope, but migrating to a new sync solution that doesn't support Android (AFAICS) isn't really in my plans either. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.