💾 Archived View for twistedcarrot.com › gemthread captured on 2023-07-10 at 13:18:00. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
This is a GemThread Server. It is designed to allow conversations to be held in Gemini-space.
See the threads on this server, sorted in order of the thread with the most recent response first.
Search for threads and responses from a specific site
Use the URL:
=> gemini://twistedcarrot.com/gemthread/threads
The "/threads" URL accepts four different query parameters:
Examples:
See the threads on this server, sorted in order of the thread with the most recent response first.
gemini://twistedcarrot.com/gemthread/threads
See the ten threads with the most recent responses.
gemini://twistedcarrot.com/gemthread/threads?start=0&count=10
See the threads on this server, sorted in order of creation, oldest first.
gemini://twistedcarrot.com/gemthread/threads?sort=create&order=asc
See five threads with the most recent responses, starting at thread 10.
gemini://twistedcarrot.com/gemthread/threads?start=10&count=5
First, write your post and publish it on your own Gemini server.
Next, copy the address of your post, and add it to this GemThread server using the URL below:
This GemThread server will fetch your post, parse it to figure out the title and a summary, and add it as a new thread.
If there are "GemThread." fields in the post (see below), this GemThread server will use them instead.
Threads can be programmatically added to the GemThread server by calling the "new" endpoint with a URL-encoded target:
gemini://twistedcarrot.com/gemthread/threads/new?gemini%3A%2F%2Fhost.name%2Flink%2Fto%2Fpost
First, write your response and publish it on your own Gemini server.
Next, copy the address of your response, and add it to this GemThread server by clicking the "Add a response to this thread" link at the bottom of the thread to which you want to add your response.
Use the "order" query parameter:
=> gemini://twistedcarrot.com/gemthread/threads/<THREAD_ID>?order=descending => gemini://twistedcarrot.com/gemthread/threads/<THREAD_ID>?order=ascending
To search for pages that might be from your site (or any site), you can pass the relevant portion of the site's URL to the "/search" endpoint, in the form:
=> gemini://twistedcarrot.com/gemthread/search?<URL_ENCODED_URL_PATH>
For example, to find all pages from the site "example.com", click on the search link above and enter "example.com" into the input box.
You can add the GemThread fields described below (in "GemThread Fields") to your page, then call the update URL:
=> gemini://twistedcarrot.com/gemthread/messages/<MESSAGE_ID>/update?<URL_ENCODED_URL>
The update URL will cause the server to refetch your page, and then use the information in the page to update the summary, author, and title for the page.
To find your page's <MESSAGE_ID> and the correct update URL, use the "/search" endpoint described above. In the returned list of messages, there will be an "Refetch and update this page" link that you can click.
You can add the "GemThread.Prohibit" field described below (in "GemThread Fields") to your page, then call the update URL:
=> gemini://twistedcarrot.com/gemthread/messages/<MESSAGE_ID>/update?<URL_ENCODED_URL>
The update URL will cause the server to refetch your page. When the server finds the line that begins with "GemThread.Prohibit", it will delete all instances of your page from the database.
To find your page's <MESSAGE_ID> and the correct update URL, use the "/search" endpoint described above. In the returned list of messages, there will be an "Refetch and update this page" link that you can click.
GemThread fields are optional fields that are intended to allow the page's author to have control over what is displayed on the GemThread server.
When parsing a page, the GemThread server will check each retrieved page for GemThread fields.
If the GemThread server does not find any GemThread fields, it will use reasonable defaults to construct the title and summary text and determine the author.
A GemThread field has the form "GemThread.FieldName". The separator can be a period, underscore, colon, or hyphen. The fieldname is case-insensitive. This means that any of the following forms will work:
gemthread-fieldname GemThread.FieldName GEMTHREAD_FIELDNAME GEMTHREAD:fieldname
GemThread field lines must not begin with whitespace. The first character on the line must be the 'g' (or 'G') of the word "GemThread".
There are four available GemThread fields:
Adding a line of the form "GemThread.Prohibit" will cause the server to refuse to create a thread or add a response for that page.
If the page is already registered on the server, adding this field and then using the update URL (discussed above) to refetch the page will cause the page to be removed from the server.
If your page was added as a response to a thread, it will be deleted from the thread.
If your page started a thread, it will be removed from the thread but the other responses in the thread will still exist.
If this field exists, it will be used as the author name in the thread's message listing. This field must be of the form:
GemThread.Author: Author's Name Here
The trailing colon (at the end of "GemThread.Author:") is required.
Whitespace will be trimmed from the beginning and end of the author's name, but must not exist either before the "GemThread.Author:" portion of the line or between the "GemThread.Author" field name and the trailing colon.
If this field exists, it will be used as the summary text, overriding the server's default, which is to use the first non-header line in the page. This field must be of the form:
GemThread.Summary: summary line for the thread or the response
If this field exists, it will be used as the title, overriding the server's default, which is to use the first header line in the page. This field must be of the form:
GemThread.Title: thread or response title
---
GemThread.Author: Raph M.
GemThread.Title: GemThread Server Information
GemThread.Summary: A GemThread server is a way for conversations to be held in Gemini-space.