Giter Site home page Giter Site logo

nayamamarshe / please Goto Github PK

View Code? Open in Web Editor NEW
557.0 8.0 26.0 4.37 MB

๐Ÿ™ Please CLI - Minimalistic New Tab Page CLI Tool with a greeting, date and time, inspirational quotes and your personal tasks and to-do list

License: MIT License

Python 100.00%
terminal cli gnome-terminal inspiration konsole new page tab task-list tasks

please's Issues

Installation failed on macOS

I followed the guideโ€ฆ

% pip3 install --user please_cli-0.3.1
ERROR: Could not find a version that satisfies the requirement please_cli-0.3.1 (from versions: none)
ERROR: No matching distribution found for please_cli-0.3.1

Error config file path in WSL

Hi,
When I launch please command, I've thsi error :

Something's wrong with your config file. You can fix ~/.config/please/config.json file manually or you can enter your name again in the setup wizard to reset the config file.  
ENTERING NAME WILL OVERWRITE YOUR PREVIOUS CONFIG.

The config.json is empty, and I have create it (rw-rw-rw)

So, I try to setup :

$ please setup
Something's wrong with your config file. You can fix ~/.config/please/config.json file manually or you can enter your name again in the setup wizard to reset the config file.  
ENTERING NAME WILL OVERWRITE YOUR PREVIOUS CONFIG.
Usage: please [OPTIONS]
Try 'please --help' for help.

Error: Got unexpected extra argument (setup)

Thanks
F.

Error Since Upgrade to Python 3.11

When I open my terminal after upgrading to Python 3.11 I get the following errors:

Traceback (most recent call last):
File "/usr/lib/python3.11/importlib/metadata/init.py", line 563, in from_name
return next(cls.discover(name=name))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/please", line 33, in
sys.exit(load_entry_point('please-cli==0.3.1', 'console_scripts', 'please')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/please", line 22, in importlib_load_entry_point
for entry_point in distribution(dist_name).entry_points
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/importlib/metadata/init.py", line 981, in distribution
return Distribution.from_name(distribution_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/importlib/metadata/init.py", line 565, in from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for please-cli

Please let me know if I can provide any additional information to help with this. And thank you for building Please, it always brings a smile to my face when I launch my terminal. :)

Feature Request - Countdown to date/event?

Hello!

I have a big deadline coming up in some months, and I thought it might be nice to have some kind of countdown timer present in the preamble to help me keep the looming date in mind. (eg. "There are 42 days left until your deadline.")

Perhaps this is something which could be added to individual tasks as well? In the case of structuring and organizing a smaller set of tasks for a larger project, it could be nice to set micro-deadlines as well, and potentially organize/prioritize the different tasks based on their time constraints.

Hopefully someone else would find this useful as well. Thanks!

Option to remove horizontal line at the top?

Hello there, I love the app, it's already replaced Neofetch on my production machine.
However, I use a tiling WM, and that means that often, my terminal windows are resized after opening, if I open additional windows in that workspace. This breaks the task list, because the horizontal line at the top forces all text below to wrap when the terminal window shrinks horizontally.
It's not a huge deal, I have aliased 'clrpls' to clear the terminal and relaunch 'please', but it would be nice to be able to eliminate that top line so that resizing the terminal window is more forgiving.
Thank you for making such a great tool :)

Release v0.2

Features:

  • Refactored Codebase
  • No unnecessary dependencies
  • Option to disable horizontal rule
  • Better formatting in obscure terminals
  • Change Tasks Order with move
  • Option to change time format between 24h and 12h
  • Option to delete all done tasks with clean
  • Add contribution credits for @CodePleaseRun @guedesfelipe in README
  • Add documentation for new commands
  • Better README, Like https://github.com/anatoliygatt/heart-switch/

Really nice: One request

Thanks for please :-)

It would be really cool if you could have todo lists on a per directory basis. If I am in

~/project1

I would love to have

~/project1/.please/items.json

and use these instead of the global todo items.

Don't know if it is possible, but here you go :-)

Greetings
Saลกa

[Suggestion] Clean Done and Create History file

First, thank you for this awesome simple, yet very useful program.

To further improve usability of this program, I want to propose 2 new features:

  1. Batch remove done task. It can become a chore to remove done task 1-by-1. Perhaps an API such as please clean.
  2. Any deleted should be moved to another file such as history.json. Then, introduce new API such as please history to display all done and "cleaned" task. This should allow the user to keep task history, while keeping the main task clean from bloat.

I understand the main concern is speed. Both of above suggestion should not impact the performance as it was outside of default please command.

Is there a way to change the time format of please, to 24 hours instead of 12?

I prefer seeing my time in the 24 hour format I've customized my time and date format in the .bashrc script however, please displays time in the 12 hour AM, PM style. I suspect the answer may be located in please.py but I'm not sure how to go about customizing the settings. I know it's not really an issue, but if anyone knows how I could do what I want, I'd be very happy and grateful. Thanks.

No status images since last update

Hi!
I felt in love with this amazing tool
and I'm working with it as my primary To-Do list app.
One issue I can't ignore is since the last update I can't see the status icons.
I'm running Manjaro with Gnome.

Maybe you can assist me?

ืฆื™ืœื•ื ืžืกืš ืžึพ2023-04-03 14-02-40

Feature request: Show quote only once per day or per session

I really like the idea of opening the terminal and being greeted with a quote. However after some time it gets annoying when I have a day where I use new terminal instances all the time. So I would prefer if please only shows once per day or only once and then again after having rebooted the system.

Add categories ?

Hi,

Sorry, it's not really an issue, but, do you plan to add categories ?.

For me, it's a very good feature, and it's not "too" complicated :), maybe.

Thanks
F.

JSON error...

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ /home/depressedpineapple/.local/lib/python3.8/site-packages/please/please.py โ”‚
โ”‚ :330 in main โ”‚
โ”‚ โ”‚
โ”‚ 327 โ”‚ try: โ”‚
โ”‚ 328 โ”‚ โ”‚ with open(os.path.join(config_path, "config.json")) as config_ โ”‚
โ”‚ 329 โ”‚ โ”‚ โ”‚ global config โ”‚
โ”‚ โฑ 330 โ”‚ โ”‚ โ”‚ config = json.load(config_file) โ”‚
โ”‚ 331 โ”‚ except FileNotFoundError: โ”‚
โ”‚ 332 โ”‚ โ”‚ open(os.path.join(config_path, "config.json"), "w") โ”‚
โ”‚ 333 โ”‚ โ”‚ typer.run(setup) โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ config_file = <io.TextIOWrapper โ”‚ โ”‚
โ”‚ โ”‚ name='/home/depressedpineapple/.config/please/config.json' โ”‚ โ”‚
โ”‚ โ”‚ mode='r' encoding='UTF-8'> โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/json/init.py:293 in load โ”‚
โ”‚ โ”‚
โ”‚ 290 โ”‚ To use a custom JSONDecoder subclass, specify it with the cl โ”‚ โ”‚ 291 โ”‚ kwarg; otherwise JSONDecoderis used. โ”‚ โ”‚ 292 โ”‚ """ โ”‚ โ”‚ โฑ 293 โ”‚ return loads(fp.read(), โ”‚ โ”‚ 294 โ”‚ โ”‚ cls=cls, object_hook=object_hook, โ”‚ โ”‚ 295 โ”‚ โ”‚ parse_float=parse_float, parse_int=parse_int, โ”‚ โ”‚ 296 โ”‚ โ”‚ parse_constant=parse_constant, object_pairs_hook=object_pairs_ โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ cls = None โ”‚ โ”‚ โ”‚ โ”‚ fp = <_io.TextIOWrapper โ”‚ โ”‚ โ”‚ โ”‚ name='/home/depressedpineapple/.config/please/confiโ€ฆ โ”‚ โ”‚ โ”‚ โ”‚ mode='r' encoding='UTF-8'> โ”‚ โ”‚ โ”‚ โ”‚ kw = {} โ”‚ โ”‚ โ”‚ โ”‚ object_hook = None โ”‚ โ”‚ โ”‚ โ”‚ object_pairs_hook = None โ”‚ โ”‚ โ”‚ โ”‚ parse_constant = None โ”‚ โ”‚ โ”‚ โ”‚ parse_float = None โ”‚ โ”‚ โ”‚ โ”‚ parse_int = None โ”‚ โ”‚ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚ โ”‚ โ”‚ โ”‚ /usr/lib/python3.8/json/__init__.py:357 in loads โ”‚ โ”‚ โ”‚ โ”‚ 354 โ”‚ if (cls is None and object_hook is None and โ”‚ โ”‚ 355 โ”‚ โ”‚ โ”‚ parse_int is None and parse_float is None and โ”‚ โ”‚ 356 โ”‚ โ”‚ โ”‚ parse_constant is None and object_pairs_hook is None and n โ”‚ โ”‚ โฑ 357 โ”‚ โ”‚ return _default_decoder.decode(s) โ”‚ โ”‚ 358 โ”‚ if cls is None: โ”‚ โ”‚ 359 โ”‚ โ”‚ cls = JSONDecoder โ”‚ โ”‚ 360 โ”‚ if object_hook is not None: โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ cls = None โ”‚ โ”‚ โ”‚ โ”‚ kw = {} โ”‚ โ”‚ โ”‚ โ”‚ object_hook = None โ”‚ โ”‚ โ”‚ โ”‚ object_pairs_hook = None โ”‚ โ”‚ โ”‚ โ”‚ parse_constant = None โ”‚ โ”‚ โ”‚ โ”‚ parse_float = None โ”‚ โ”‚ โ”‚ โ”‚ parse_int = None โ”‚ โ”‚ โ”‚ โ”‚ s = '' โ”‚ โ”‚ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚ โ”‚ โ”‚ โ”‚ /usr/lib/python3.8/json/decoder.py:337 in decode โ”‚ โ”‚ โ”‚ โ”‚ 334 โ”‚ โ”‚ containing a JSON document). โ”‚ โ”‚ 335 โ”‚ โ”‚ โ”‚ โ”‚ 336 โ”‚ โ”‚ """ โ”‚ โ”‚ โฑ 337 โ”‚ โ”‚ obj, end = self.raw_decode(s, idx=_w(s, 0).end()) โ”‚ โ”‚ 338 โ”‚ โ”‚ end = _w(s, end).end() โ”‚ โ”‚ 339 โ”‚ โ”‚ if end != len(s): โ”‚ โ”‚ 340 โ”‚ โ”‚ โ”‚ raise JSONDecodeError("Extra data", s, end) โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ _w = <built-in method match of re.Pattern object at 0x7fcd86338cf0> โ”‚ โ”‚ โ”‚ โ”‚ s = '' โ”‚ โ”‚ โ”‚ โ”‚ self = <json.decoder.JSONDecoder object at 0x7fcd862a6a30> โ”‚ โ”‚ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚ โ”‚ โ”‚ โ”‚ /usr/lib/python3.8/json/decoder.py:355 in raw_decode โ”‚ โ”‚ โ”‚ โ”‚ 352 โ”‚ โ”‚ try: โ”‚ โ”‚ 353 โ”‚ โ”‚ โ”‚ obj, end = self.scan_once(s, idx) โ”‚ โ”‚ 354 โ”‚ โ”‚ except StopIteration as err: โ”‚ โ”‚ โฑ 355 โ”‚ โ”‚ โ”‚ raise JSONDecodeError("Expecting value", s, err.value) fro โ”‚ โ”‚ 356 โ”‚ โ”‚ return obj, end โ”‚ โ”‚ 357 โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ idx = 0 โ”‚ โ”‚ โ”‚ โ”‚ s = '' โ”‚ โ”‚ โ”‚ โ”‚ self = <json.decoder.JSONDecoder object at 0x7fcd862a6a30> โ”‚ โ”‚ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ JSONDecodeError: Expecting value: line 1 column 1 (char 0) Failed while loading configuration โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ /home/depressedpineapple/.local/lib/python3.8/site-packages/please/please.py โ”‚ โ”‚ :330 in main โ”‚ โ”‚ โ”‚ โ”‚ 327 โ”‚ try: โ”‚ โ”‚ 328 โ”‚ โ”‚ with open(os.path.join(config_path, "config.json")) as config_ โ”‚ โ”‚ 329 โ”‚ โ”‚ โ”‚ global config โ”‚ โ”‚ โฑ 330 โ”‚ โ”‚ โ”‚ config = json.load(config_file) โ”‚ โ”‚ 331 โ”‚ except FileNotFoundError: โ”‚ โ”‚ 332 โ”‚ โ”‚ open(os.path.join(config_path, "config.json"), "w") โ”‚ โ”‚ 333 โ”‚ โ”‚ typer.run(setup) โ”‚ โ”‚ โ”‚ โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โ”‚ โ”‚ config_file = <_io.TextIOWrapper โ”‚ โ”‚ โ”‚ โ”‚ name='/home/depressedpineapple/.config/please/config.json' โ”‚ โ”‚ โ”‚ โ”‚ mode='r' encoding='UTF-8'> โ”‚ โ”‚ โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚ โ”‚ โ”‚ โ”‚ /usr/lib/python3.8/json/__init__.py:293 in load โ”‚ โ”‚ โ”‚ โ”‚ 290 โ”‚ To use a customJSONDecodersubclass, specify it with thecl โ”‚
โ”‚ 291 โ”‚ kwarg; otherwise JSONDecoder is used. โ”‚
โ”‚ 292 โ”‚ """ โ”‚
โ”‚ โฑ 293 โ”‚ return loads(fp.read(), โ”‚
โ”‚ 294 โ”‚ โ”‚ cls=cls, object_hook=object_hook, โ”‚
โ”‚ 295 โ”‚ โ”‚ parse_float=parse_float, parse_int=parse_int, โ”‚
โ”‚ 296 โ”‚ โ”‚ parse_constant=parse_constant, object_pairs_hook=object_pairs
โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ cls = None โ”‚ โ”‚
โ”‚ โ”‚ fp = <_io.TextIOWrapper โ”‚ โ”‚
โ”‚ โ”‚ name='/home/depressedpineapple/.config/please/confiโ€ฆ โ”‚ โ”‚
โ”‚ โ”‚ mode='r' encoding='UTF-8'> โ”‚ โ”‚
โ”‚ โ”‚ kw = {} โ”‚ โ”‚
โ”‚ โ”‚ object_hook = None โ”‚ โ”‚
โ”‚ โ”‚ object_pairs_hook = None โ”‚ โ”‚
โ”‚ โ”‚ parse_constant = None โ”‚ โ”‚
โ”‚ โ”‚ parse_float = None โ”‚ โ”‚
โ”‚ โ”‚ parse_int = None โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/json/init.py:357 in loads โ”‚
โ”‚ โ”‚
โ”‚ 354 โ”‚ if (cls is None and object_hook is None and โ”‚
โ”‚ 355 โ”‚ โ”‚ โ”‚ parse_int is None and parse_float is None and โ”‚
โ”‚ 356 โ”‚ โ”‚ โ”‚ parse_constant is None and object_pairs_hook is None and n โ”‚
โ”‚ โฑ 357 โ”‚ โ”‚ return _default_decoder.decode(s) โ”‚
โ”‚ 358 โ”‚ if cls is None: โ”‚
โ”‚ 359 โ”‚ โ”‚ cls = JSONDecoder โ”‚
โ”‚ 360 โ”‚ if object_hook is not None: โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ cls = None โ”‚ โ”‚
โ”‚ โ”‚ kw = {} โ”‚ โ”‚
โ”‚ โ”‚ object_hook = None โ”‚ โ”‚
โ”‚ โ”‚ object_pairs_hook = None โ”‚ โ”‚
โ”‚ โ”‚ parse_constant = None โ”‚ โ”‚
โ”‚ โ”‚ parse_float = None โ”‚ โ”‚
โ”‚ โ”‚ parse_int = None โ”‚ โ”‚
โ”‚ โ”‚ s = '' โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/json/decoder.py:337 in decode โ”‚
โ”‚ โ”‚
โ”‚ 334 โ”‚ โ”‚ containing a JSON document). โ”‚
โ”‚ 335 โ”‚ โ”‚ โ”‚
โ”‚ 336 โ”‚ โ”‚ """ โ”‚
โ”‚ โฑ 337 โ”‚ โ”‚ obj, end = self.raw_decode(s, idx=_w(s, 0).end()) โ”‚
โ”‚ 338 โ”‚ โ”‚ end = _w(s, end).end() โ”‚
โ”‚ 339 โ”‚ โ”‚ if end != len(s): โ”‚
โ”‚ 340 โ”‚ โ”‚ โ”‚ raise JSONDecodeError("Extra data", s, end) โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ _w = <built-in method match of re.Pattern object at 0x7fcd86338cf0> โ”‚ โ”‚
โ”‚ โ”‚ s = '' โ”‚ โ”‚
โ”‚ โ”‚ self = <json.decoder.JSONDecoder object at 0x7fcd862a6a30> โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ”‚ โ”‚
โ”‚ /usr/lib/python3.8/json/decoder.py:355 in raw_decode โ”‚
โ”‚ โ”‚
โ”‚ 352 โ”‚ โ”‚ try: โ”‚
โ”‚ 353 โ”‚ โ”‚ โ”‚ obj, end = self.scan_once(s, idx) โ”‚
โ”‚ 354 โ”‚ โ”‚ except StopIteration as err: โ”‚
โ”‚ โฑ 355 โ”‚ โ”‚ โ”‚ raise JSONDecodeError("Expecting value", s, err.value) fro โ”‚
โ”‚ 356 โ”‚ โ”‚ return obj, end โ”‚
โ”‚ 357 โ”‚
โ”‚ โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚
โ”‚ โ”‚ idx = 0 โ”‚ โ”‚
โ”‚ โ”‚ s = '' โ”‚ โ”‚
โ”‚ โ”‚ self = <json.decoder.JSONDecoder object at 0x7fcd862a6a30> โ”‚ โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Failed while loading configuration

New feature: auth method and syncronism to different equipments

Hi...
One featurethat I'm interested in is synchronization with different equipments. I have three desktops and laptops and I find an account and task sync to be a nice feature.
I can help with that too. Let me know if you need some help.

Good work guys.

Support for todo.txt

Is it possible to read an existing todo.txt file at startup? All todos of the day or the week should then be displayed.

A synchronization is not necessary, for this there would be other tools, such as syncthing.

please - UX

please uses config.json kept in ~/.config/please as a database.

Basic App

Initial:

  • Check if ~/.config/please exists
    • If yes, continue
    • If no, create the folder
  • Check if config.json exists
    • If no, create new config file.
  • If config.json exists, check if initial_setup_done key has the value "true"
    • If yes, then we now simply call the default show() function.
    • If no, then we call the setup() function.

setup():

  • Ask user for name
  • save name in config.json with key "user_name"
  • Set "initial_setup_done" key as true
  • Also set the key "tasks" as an empty list

callme():

  • Takes in name as argument
  • Sets the "user_name" key value as name in the config.json
  • Feedback

show():

  • Show time of the day followed by name from json "user_name" key
  • Show tasks
  • Show calendar events

Tasks

add():

  • Take in a string task as an argument
  • Take the pre-existing array from config.json, append the new task to it with the following format:
tasks: [
  {
    name: "...",
    done: false,
    date_added: "...",
    date_completed: "...",
    priority: "1" // 1 is high, 2 is low...
  }
]
  • Show updated table

delete():

  • Takes in an index integer
  • Takes the array of tasks from config.json and deletes the element at index
  • Show updated table

done():

  • Takes in an index integer
  • Takes the array of tasks from config.json and sets the key "done" to True for element at index
  • Show updated table

showtasks():

  • Prints table of tasks, sorted by date (Most recently added is first)
  • Columns:
Number Task Done? Date Added Date Completed
  • Don't show date added and date completed columns yet.

Add 24 hour time

For people who normally use 24h time, having 12h time in an app feels weird, it would be great to have an option to toggle between 12h or 24h time.

(This is my first ever feature request forgive me if I am doing something wrong. I have so far only used github in private,)

Simple Tasks Hierarchy

hello @NayamAmarshe After using your please CLI for a few months daily, the only shortcoming I felt encountering for my usage would be detailing some tasks with a few sub-tasks.

So naturally I forked the project and added this functionnality, please find linked to this enhancement issue my branch, and if so inclined, you may review it and eventually merge it.

https://github.com/vchalmel/please/tree/hierarchy
#56

Add OpenWeather support

It takes a long time to visit various sites, I spend much more time in the terminal. And if the weather greets me at every launch, it will be just fine :)
After installing please, you will need to insert your Weather token and configure your location. By default, the city should be set, according to the time zone, if this is not possible, any city is set.

Possibility to change tasks order

One interesting feature is the possibility to change the order of the tasks. This is a nice and simple feature you can implement and is important for the flow of tasks.

Disable tasks

I would like to disable printing of the tasks.

There seems to be options to disable greeting, line and quote.

But no options to disable printing of tasks.

Calendar UX

Library to use: icspy

Goal:

  • Let users add their own ics file.
  • Show events and holidays from the ics file in please during shell startup
  • Show upcoming all upcoming events in the current week.

addcalendar():

ICS Implementation:

  • Check if key "calendar_type" exists in config.
    • If not, Give users the choice to choose between Google and ICS file
      • If ICS is selected, then ask users to copy paste a single ICS file in ~/.config/please
      • If Google is selected, then login and synchronizes
    • If yes, check if key "calendar_type" == "google" or "ics" and prompt user about overwriting previous calendar
      • If ICS is selected, then do previous steps for ICS.
      • If Google is selected, then do previous steps for Google Login.
      • If Cancel is selected, print "No worries, maybe later..."

showcalendar():

  • Check if key "calendar_type" exists in config.
    • If not, call addcalendar()
    • If yes, check if key "calendar_type" == "google" or "ics"
      • If ICS, then fetch events from ics and print the upcoming events in the next 7 days.
      • If Google is selected, then fetch data and print the upcoming events in the next 7 days.

TimeFormat behaves weird at startup

image

It looks like default value makes time to appear in 12h format, but for changetimeformat command (which does change 24h to 12h) the default value appears as 24h

Improvement: Option to add task without string quotes `"`

Wouldn't it be better to not have " quotes attached when naming a task

All other arguments after add can be added to form the title

Some people like me are lazy to reach and hold shift key for "

Instead of this command
please add "Task name"
this would be a choice
please add Task name

or atleast can we make it optional with config file

Themes

Is there theming support? If not, is it planned?

After installing please does not work, wrong file edited (.-bashrc).

zkitzo@Hetzner:~$ please
-bash: please: command not found
zkitzo@Hetzner:~$ source .bashrc
zkitzo@Hetzner:~$ please
-bash: please: command not found
zkitzo@Hetzner:~$ nano .bashrc
zkitzo@Hetzner:~$ echo `echo $0`
-bash
zkitzo@Hetzner:~$ ls -lAh
-rw-rw-r--  1 zkitzo zkitzo  209 May 31 19:49 .bash_aliases
-rw-------  1 zkitzo zkitzo 205K Jun 13 17:11 .bash_history
-rw-r--r--  1 zkitzo zkitzo  220 Jan  7 22:16 .bash_logout
-rw-rw-r--  1 zkitzo zkitzo    7 Jun 13 17:10 .-bashrc
-rw-r--r--  1 zkitzo zkitzo 4.1K May 22 21:08 .bashrc

Also /home/zkitzo/.local/bin is not in my $PATH. Easy to add but I think you should fix it!

"please daily" - > Error: No such command 'daily'

I am on linux with the latest version of "please" at the time of writing. When I run the please daily command to start the program once a day, as described in the README, I get this error:

Usage: please [OPTIONS] COMMAND [ARGS]...
Try 'please --help' for help.

Error: No such command 'daily'.

Missing LICENSE file

I see the project is MIT. You should create a LICENSE.md file in the root directory to show this clearly within the first page view.

Nix expression [feature request]

There usually is a ./contrib folder that contains some integration-like files.

Some nix expert may come along and help in with the idiomic way. But there is what worked for my flake.nix

{ config, pkgs, ... }:
let

  py3-with-deps-for-please = pkgs.python3.withPackages (ps: [ ps.typer ps.rich ]);
  py3-code-for-please = pkgs.fetchFromGitHub {
    rev = "390ecaeda5cad70b56f2b4ef64725c1d1a10a842";
    owner = "NayamAmarshe";
    repo = "please";
    hash = "sha256-U0wT6uZ9IV4lemMD9UVTSMvGeQ9h5l1TQ9gUiH/tlJc=";
  };
  please-cli = pkgs.writeShellScriptBin "please" ''
    ${pkgs.lib.getExe py3-with-deps-for-please} ${py3-code-for-please}/please/please.py $@
  '';

in

{

  config.users.users.mt.shell = pkgs.fish;

  config.environment.systemPackages = [
    please-cli 
  ];
}

I hope for someone to publish a correct package not only to AUR but also to nixpkgs

minor spelling error

hi, cool package! just a minor spelling error in the README (so minor, it's not even worth creating a PR):

# Mark task as undone
pleae undone <TASK NUMBER>

kindly note the word please is misspelled

Not showing greetings

The greetings are not being displayed. I attached a screenshot of how it looks, and my JSON config file as well.
please_issue
please_config

I installed it via pip. Don't know if this might be related to the issues.

By the way, I really liked the idea. Thanks for this amazing CLI tool.

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.