Git Product home page Git Product logo

ttbp's People

Contributors

evilmibm avatar modgethanc avatar sanqui avatar vilmibm 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ttbp's Issues

clean up settings menu

the current user settings menu is getting cumbersome to use! most notably, you shouldn't have to go through the entire settings sequence just to change one thing (especially since you can't back out once you started)

pub/nopub selection

allow toggling of pub/nopub on individual entries from within the main interface

add RSS output

for users that are publishing to web, add rss output for all entries that are public

make global feels listing more efficient

i am reaping the consequences of my past self's sloth, because with nearly 600 entries on ttbp, it now takes around 10-11 seconds to load the global feed. so, here are some solutions i'm considering:

  • set a rolling cutoff date for how far back it checks for entries (since entry date is encoded in filename, this should be fairly fast).
    DOWNSIDE: what if no one posts for a long period of time? should the global feed display only posts within the last, say, week?
  • whenever someone posts, queue that post onto a file that lists the 10 most recent posts; the global feed reads this list instead of trying to generate one from scratch.
    DOWNSIDE: this excludes people who might edit/post from outside of the ttbp interface
    -make a cron job that cruises through all the entry directories and generate a list of the most recent posts; combine this with the above option. this could be a way to catch posts that fall through the cracks.

thoughts/ideas appreciated!

cw/rot13 support

ability to mark posts (or parts of posts) for rot13, such as for spoiler or content warning or silly joke or whatever reasons. also make it easy to toggle rot13 when reading posts.

Navigation error in [3] browse global feels

Steps to reproduce:

  1. Open new terminal window.
  2. SSH into tilde.town.
  3. Type 'feels' (without quotes) and press enter.
  4. Press enter.
  5. Type 3 and press enter.
  6. Type 'd' and press enter.
  7. Type any single digit (0-9, inclusive) and press enter.
  8. Press 'q' (without quotes).

Expected behaviour: Will return to recent global entries on page 2.
Actual behaviour: Returns to recent global entries on page 1.

add option for default nopub

this feature addresses post privacy; currently, if a user is publishing to html/gopher, all entries are default published, and must be individually toggled to nopub if someone wants their entry to not be published. this new option will allow a user to set their default post behavior to either pub or nopub. toggling this option will not change the status of existing entries.

(follow-up: have the ability to retroactively mark all entries pub or nopub?)

setup.py

this issue covers:

  • creating a setup.py
  • referencing things installed via pip (inflect)
  • inlining the chatter functions so they live inside this project
  • creating entry points (ttbp and feels) so when the project is installed you get nice scripts for running it

i'm going to start the setup.py at version 0.9.3

set custom date rollover time

right now it just defaults to roll over to a new date at midnight for whatever your localtime is; consider making an option to set a custom time, if you wanted rollover to happen sooner or later.

python3 support

this ticket covers making ttbp happy with either python2 or python3 via six.

Valid configs should not be assumed.

## assumes list of users passed in all have valid config files

I'm happy to work on the fix for this, just making the issue so I don't forget. If someone's permissions are off or the config is invalid, the whole thing comes to a halt. This should probably be handled with just a

try:
...
except IOError:
    continue

Broken gopher index generation

I'm trying to browse gopher://tilde.town/1/~endorphant/feels/ and all the entry links are broken. The domain field only contains a 'tilde' and not 'tilde.town'. This causes a DNS lookup failure and the page cannot be viewed outside of tilde.town.

add gopher support

this is a sizable feature. it will require:

  • ability to chose a directory to publish a gophermap and gopher files
  • ability to render the same files as either html or txt
  • ability to render a gophermap

permission error for global feels index.html writing

after saving a new post:

> posted to https://tilde.town/~endorphant/blog/index.html
> thanks for sharing your feels!
Traceback (most recent call last):
File "/usr/local/bin/feels", line 9, in
load_entry_point('ttbp', 'console_scripts', 'feels')()
File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 188, in start
print(main_menu())
File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 444, in main_menu
core.www_neighbors()
File "/home/vilmibm/src/ttbp/ttbp/core.py", line 403, in www_neighbors
write_global_feed(sortedUsers)
File "/home/vilmibm/src/ttbp/ttbp/core.py", line 212, in write_global_feed
outfile = open(FEED, "w")
IOError: [Errno 13] Permission denied: '/var/global/ttbp/www/index.html'

entry selection error

as reported bu ~variscite, if you're scrolled past the first page of entries, entry selection is incorrect.

specifically, the indexing remains pegged to the original list of entries passed to the paginator, even though the UI shows the entry selection number resetting.

two options for fixing:

  • add a shift in the paginator so the menu selector knows how to index into the full file list
  • display the actual file index to the user

graffiti wall lock check

find a way to deal with graffiti wall lockfile, in case someone left the wall open in a session and forgot about it. should there just be a time limit for wall visiting?

add option for multiple posts per date

currently, you can only make one post per date; it might be useful to be to opt for more than one post a day. this could tie in well with privacy/publishing options, to selectively make things public or not.

feels dies with a stack trace if you hit return at the initial configuration review prompt:

welcome back, feoh.


your ttbp configuration doesn't look right. let's make you a fresh copy.


	[  0 ] editor: 	vim
	[  1 ] publish dir: 	blog
	[  2 ] publishing: 	True

pick a setting to change (or type 'q' to exit):
Traceback (most recent call last):
  File "/usr/local/bin/feels", line 9, in <module>
    load_entry_point('ttbp', 'console_scripts', 'feels')()
  File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 179, in start
    print(check_init())
  File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 233, in check_init
    setup_repair()
  File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 372, in setup_repair
    setup()
  File "/home/vilmibm/src/ttbp/ttbp/ttbp.py", line 417, in setup
    if settingList[int(choice)] == "editor":
ValueError: invalid literal for int() with base 10: ''

I'd be happy to submit a PR for this, likely fix is something like (line 417):

    if settingList[int(choice)] == "editor":

gets replaced with something like:

  if settingList[int(choice)] and settingList[int(choice)] == "editor":

That way if the user just hits enter and settingList[int(choice)] is null, we just return the current settings.

I'd be happy to submit a PR if you like - I know you prefer to give permission before accepting such things.

Anyway, thanks for writing feels and happy new year!

menu breaks when not paginated

Traceback (most recent call last):
  File "/usr/local/bin/feels", line 11, in <module>
    load_entry_point('ttbp', 'console_scripts', 'feels')()
  File "/town/src/ttbp/ttbp/ttbp.py", line 199, in main
    print(main_menu())
  File "/town/src/ttbp/ttbp/ttbp.py", line 595, in main_menu
    return main_menu()
  File "/town/src/ttbp/ttbp/ttbp.py", line 568, in main_menu
    view_neighbors(users, prompt)
  File "/town/src/ttbp/ttbp/ttbp.py", line 812, in view_neighbors
    view_feels(userIndex[choice])
  File "/town/src/ttbp/ttbp/ttbp.py", line 834, in view_feels
    return list_entries(metas, entries, owner+" recorded feels, listed by date: ")
  File "/town/src/ttbp/ttbp/ttbp.py", line 1314, in list_entries
    (page, choice) = ans
TypeError: 'int' object is not iterable

color adjustments

rainbow menus are unreadable on light backgrounds, and don't have enough contrast on dark backgrounds.

Exception: bad system state: /var/global does not exist.

r a d project! tried to install (pip install .) with #41 merged in and saw this:

Traceback (most recent call last):
  File "/home/d/ttbp/.venv/bin/feels", line 11, in <module>
    load_entry_point('ttbp==0.12.2', 'console_scripts', 'feels')()
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2793, in load_entry_point
    return ep.load()
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2411, in load
    return self.resolve()
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2417, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/ttbp/ttbp.py", line 48, in <module>
    from ttbp import config, core, chatter, gopher, util
  File "/home/d/ttbp/.venv/lib/python3.7/site-packages/ttbp/config/__init__.py", line 19, in <module>
    raise Exception('bad system state: /var/global does not exist.')
Exception: bad system state: /var/global does not exist.

Not really sure how to fix that ๐Ÿค”

motd feature

a way to announce statuses within ttbp without having to refresh sessions (including upgrade announcements)

needs unit testing

i'm still working on learning about unit testing! i'll be doing this myself at some point, but i'd appreciate extra help here.

fix core.meta()

i dearly love the version of myself that needed to do this because that was the only way that version of me knew how to handle this problem and it is very cute, but i should make it better someday.

make pagination remember location

currently, if you perform any action on an item in a pagified list and then return to the original list, it resets to the beginning of that list. this is quite tedious if, say, you're trying to toggle pub/nopub on page 15 of 16 or something, because you have to scroll back to where you started from.

the pagination tool should have a way to remember location and return there!

write more descriptive intro text

current intro text is not very helpful at explaining the feels engine! consider a better intro (tied in with better help file) that gives new users a rundown of what to expect.

include:

  • link to town CoC
  • how to ask for help
  • brief privacy description

curses upgrade

if you're good with writing curses interfaces, please let me know! i want to upgrade the interface to something less clunky!

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.