2.3. Internals¶
2.3.1. Database schema¶
2.3.1.1. User storage¶
| Name | Type | Contents |
|---|---|---|
users |
hash | Hash mapping usernames to UIDs |
user:uid |
hash | All the data we have on the user (see Users documentation) |
2.3.1.2. Caching site¶
| Name | Type | Contents |
|---|---|---|
site:timeline |
list | list of JSON lists of data needed to initialize a Post |
site:all_posts |
list | list of indexes for timeline matching all_posts |
site:posts |
list | list of indexes for timeline matching posts |
site:pages |
list | list of indexes for timeline matching pages |
site:rev |
string | revision (incremented at each scan; used to determine if updates are needed) |
site:lock |
string | lock on site DB |
2.3.2. coil.utils¶
-
coil.utils.ask(query, default=None)¶ Ask a question.
-
coil.utils.ask_yesno(query, default=None)¶ Ask a yes/no question.
-
class
coil.utils.SiteProxy(db, site, logger)¶ A proxy for accessing the site in a multiprocessing-safe manner.
-
all_posts¶ Get all_posts, reloading the site if needed.
-
pages¶ Get pages, reloading the site if needed.
-
posts¶ Get posts, reloading the site if needed.
-
reload_site()¶ Reload the site from the database.
-
scan_posts(really=True, ignore_quit=False, quiet=True)¶ Rescan the site.
-
timeline¶ Get timeline, reloading the site if needed.
-