modgethanc / ttbp Goto Github PK
View Code? Open in Web Editor NEWthe tilde.town feels engine
Home Page: http://tilde.town/~endorphant/ttbp
License: MIT License
the tilde.town feels engine
Home Page: http://tilde.town/~endorphant/ttbp
License: MIT License
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)
allow toggling of pub/nopub on individual entries from within the main interface
for users that are publishing to web, add rss output for all entries that are public
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:
thoughts/ideas appreciated!
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.
Steps to reproduce:
Expected behaviour: Will return to recent global entries on page 2.
Actual behaviour: Returns to recent global entries on page 1.
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?)
this issue covers:
inflect
)chatter
functions so they live inside this projectttbp
and feels
) so when the project is installed you get nice scripts for running iti'm going to start the setup.py at version 0.9.3
self-explanatory
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.
add this in as a user setting!
this ticket covers making ttbp happy with either python2 or python3 via six.
Line 759 in 0aaedaf
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
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.
on the 'send feedback' menu, typing 'q' doesn't take you back to the main screen like all the other menus.
this is a sizable feature. it will require:
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'
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:
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?
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.
ttbp.view_feed() uses mtime
to determine display order; this means that older entries with a recent mtime will get bumped up on the feed.
the behavior that i intended was that editing a post on the day of should bump it up within that day, but it should not bump a backdated post to the current day.
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!
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
write better docs/guides pls
make an option for wiping everything associated with feels
rainbow menus are unreadable on light backgrounds, and don't have enough contrast on dark backgrounds.
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 ๐ค
a way to announce statuses within ttbp without having to refresh sessions (including upgrade announcements)
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.
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.
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!
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:
if you're good with writing curses interfaces, please let me know! i want to upgrade the interface to something less clunky!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.