Skip to content

bczsalba/teahaz-client

Repository files navigation

PLANZ

BUGS

  • files with the same name but different content are seen as being the same

FEATURES

upcoming checklist

  • settings should be overwritten by settings in .config/teahaz

  • usercfg & session should be stored under .config/teahaz

  • indicator for sending files

  • indicator for downloading files

  • inline action sending

  • notifications

  • fix up completer

    • cant handle less than self.rows number of options
  • windows compatibility:

    • move os specific imports to their proper place
    • add more keys to keybinds for windows (specifically CTRL_*)
    • convert _GetchWindows __call__ to use wgetch || decode getch output
    • test on windows
  • new binds

    • s
  • multi level inline codes

  • add help menu for common errors

  • FUTURE: gtk plugin

maybe

  • change infield cursor char depending on mode
  • formatting commands, like !th break
  • add pathbar to bottom in settings (maybe other menus too)

finished

  • pytermgui get_object_by_id(id)

    • store all objects with ui__id tag in a global dictionary
    • make this dict appendable from other sources, as not everyone will use container_from_dict
    • create method to return element of id given
  • pytermgui buttons

    • prompts should have a new type, which is a single button selection
    • creation of buttons is done with the "ui__button" tag
    • handlers of functions can be added by setting their .handler attribute
  • color settings

    • add highlights category
    • make char styles live refresh
    • fix toggle
    • (maybe) add corner char style
  • profiles menu

    • add settings/saving handler (maybe using edit_setting)
      • make depth work properly
      • add file attribute to all ui elements as they are made
    • add handler functions & id system to pytermgui
    • bugs
      • UI_TRACE function doesn't restore values correctly
        • obj.file not set sometimes
        • deeper objects dont refresh their values
  • login menu

    • generate prompts for server options
      • basically, the idea is for the choice to be registered after an enter press, and for it to look like timetable.
      • create dict to store data like address,nick,users?
      • overwrite select to be like asztal's timetable
      • overwrite handler for all prompts in serverlist with the id system
  • multiline:

    • implement \033[7m highlighting for infield
    • implement custom cursor & highlight colors
    • fix visual_goto_up/down not working
    • fix paste not adjusting height
    • strip \n from paste
    • fix endless insert tags after dd and ESC i
  • fixes for printing

    • figure out what wipes the screen
    • make it, like, not do that
  • minor additions

    • add_to_trace can get the caller function dynamically, so it really should
  • new binds

    • CTRL_L or something to reprint current ui
  • general ui

    • make colorguide nicer
  • messaging lol

    • basic functions first

      • add server
      • login/register
        • basic menu
        • login function
        • register function
    • top headerbar indicating current chatroom info

  • restructure

    • create Color class in pytermgui.py and move color things under it
  • add inline formatting symbols

    • italic
    • bold
    • italic_bold
    • underline
    • strikethrough
  • add prev_get support, extra messages before they send

  • InputFieldCompleter(Container)

    """ Container derivative for autocomplete function """

    • main goals:
      • this object can get a field in the constructor, or create one for itself
      • it uses FuzzyWuzzy for autocompletion
      • intercepts field's keys to look for RETURN, up/down
      • it gets a list of strings to look for, and it uses FW to get the 5 best matches NOTE: this list should be refreshable
      • in the first iteration used by FileManager and emoji search
      • matching parts of string are highlighted (with settable style)
    _________________________
    | your input matters    |
    | your input's cool     |
    | your input sucks      |
    | > your input          |
    -------------------------
  • messages would work better with positional printing

  • teahazrc file in $HOME/.config/teahaz/thconf.py

  • improve parse_inline_codes (refer to comment) !! USE REGEX !!

  • messaging lol

    • message
      • get
      • send
      • display
        • invent fancy formula to get pos of messages by index
      • select
  • strip messages

    • send
    • receive
  • fix multiline

  • fix conv header

> FileManager(Container)

    """
    Container derivative that would show and let users interact
    with files.
    """

    - main methods (other than Container's):
        * [x] cd                 : change directory
        * [x] search(term)       : search for `term` in files
        * [x] execute(cmd) : execute given command in bash on the file
        * [x] open(opt: index)   : open selected file with the global filetype handlers

    - goals
        [x] have keybind support through field
        [x] highlight files and directories separately
        [x] do magiks :exclamation:
  • --create-chatroom arg

  • fix conv/user switching

    • messages should reprint in set_chatroom (lno. 1935)
  • message replies!

    • add submit action to message_select
    • make reply action pre-set replyId
    • add visual representation of replying-to
    • make sent message add replyId
    • make print_messages read & display replyId
    • add goto_reply_parent action
    • theres a specific message that breaks it all
> LoadingScreen(Container):

    Universal loading screen to be called during
    any long operations. For re-implementation,
    provide .start() and .stop() methods, and 
    intercept input.

    - methods:
        + set_title
        + show
            * interrupts input
        + destroy
            * resumes input
    - goals
        + different functions can write data to it
        + callbacks are meant to destroy once loading is done
        + can be reimplemented easily in configs
  • universal handling of errors

  • ? help menu

  • work on chatroom selector

About

The best tea in town.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages