tagem icon indicating copy to clipboard operation
tagem copied to clipboard

Planned Features and Bug Fixes

Open NotCompsky opened this issue 5 years ago • 0 comments

qry

Features

  • Allow subqueries
    • E.g. f ( t "Foobar" ), for which f t "Foobar" is already an alias for
    • E.g. f ( t "." and attr size > 10 )
    • Era subqueries will almost certainly need these to be good.
      • E.g. e ( f d "youtube" and d "^http" ) and t "Music" for eras tagged "Music" belonging to Youtube files
  • Add ability to use filters of external database tables in qry
    • This is possible only if the database access credentials are the same as for the primary (tagem) database
    • E.g. filter according to post/comment contents
  • Compile qry.cpp to WASM, and use that to check qry formatting on client-side, allowing for more specific hints to be given to the user when they use incorrect syntax.

Performance

  • Use query hints, such as STRAIGHT_JOIN, on some queries. There was previously a massive speed boost simply by changing WHERE IN statements to LEFT JOIN (...) A WHERE A.thing IS NULL, so they cannot be ruled out.

Security

  • Check qry's list of variable names (in value list) against list of file2 table names.

JavaScript

Parsing

  • Become recursive.
    • In particular, each sub-namespace should be able to access parent namespaces, and variable shadowing should be disallowed. The namespace should be pre-populated with reserved identifiers, such as "if","let","else", etc. Then the problem of identifying identifiers is simplified.

Tidy

  • Investigate the use of classes to specify that a node is currently being used by something, and use the existence of ANY such class to make that node visible.
    • E.g. add-dir-dialog adds the class "usedby-dirdialog" to the tagselect-files node while it is in use.
    • Could be used to alert when multiple different things have unhidden the same node.

Tagging

Features

  • Option to "upgrade" a tag to one of its children.
  • When creating new tags, suggest parent tags by splitting the new tag

Server

Feature

  • Allow options to be (en|dis)abled from the web admin dashboard rather than command line arguments.
    • This works better for Docker distribution, where command line arguments cannot be changed.
  • TLS/SSL (HTTPS)
  • Ability to upload files from clients to the server.
  • Map external commands, rather than use a pipe, with extra command line arguments. Allowing clients to execute the command with the arguments if the first arg matches.
    • E.g. --cmd rscrape-submission --cmd record-tweets
  • Add the file IDs of DB-recorded files that are displayed in the filesystem directory view, allowing for merge_files to be meaningful even with non-DB-recorded files (so long as the primary selected file is recorded in the DB).
  • The ability to view all websites within the app.
    • This would allow the viewing of any webpage whatsoever, for instance Netflix videos, Twitter threads (as opposed to only individual Tweets), etc.
    • The issue is that some sites ask the browser (via CORS settings) not to be displayed within iframes. All that would need to be done would be add something functionally like CORS Anywhere to the server.

Bugs

  • tag2parent_tree insertions do not fully record children recursively, and requires the tag tree to be rebuilt via the CALL gen_tag2parent_tree() MySQL procedure

Client

Feature

  • Ability to edit text files from the browser
  • Tools for the rapid creation of computer vision datasets. The formerly-included GUI application used to allow one to cycle through images and draw rectangles in images, tag these rectangles, and use those tags to extract the rectangles into a caffe2 database. (e.g. selecting a human head in a photo and tagging it "Human Head"). This seems like it would be easy to add to the web page.

Bugs

  • (Root-level) external DB comments duplicated below all the others
  • History state is mixed up

Features

  • Associate DCT hashes with backup files too, as they may be different to the main file's

External DB Integration

  • Link files to posts based on backup files' URLs too
  • Initially order external DB comments by score attribute, if available.
  • Allow custom ordering of external DB comments client-side, with a button to save this new ordering to the DB.
  • Download subtitles for HTML <track> tag, and provide endpoint subtitles
  • Boolean in tag2parent to specify whether a parent tag transfers to all descendants or only to immediate children. For instance, "Country" should not transfer to "British Nationality", when "British Nationality" is a child of "Britain" which is a child of "Country".

NotCompsky avatar Jul 27 '20 13:07 NotCompsky