ref: 7385a44116380706e82c18f879d8979708fcfcbe cheogram/Util.hs -rw-r--r-- 8.6 KiB
Set up structure to cache OOB coming from a direct message route

Does not actually fetch or cache any OOB data yet, but detects all such data and
has the right types to be able to do it. Replaces all OOB elements with new ones
and replaces all instances of gives URLs with new URLs, just no actual work is
done yet.
Merge branch 'better-thread-exceptions'

* better-thread-exceptions:
  Terminate on fatal exception
  Import forkXMPP from jingle-xmpp
Import forkXMPP from jingle-xmpp

This is a much safer version that rethrows exceptions to the parent instead of
just printing them and terminating the thread.
Merge branch 'cv_adhoc_squashed'

* cv_adhoc_squashed:
  Change Case to Select
  Add Thread to Bot Responses
  Add Text-Single Handling
  AdHoc Bot Forms
AdHoc Bot Forms

Before this when a user got back a form it was considered an error. Only
commands that returned a note could be executed.
Now, though, we see the form and try to handle it as a series of chat questions
asked to the people. This is only the first version of the technique, though,
so it has some pretty strong limitations.

First, it only supports lists because that's all the test flow I pulled out of
the spec had in it. There are obviously other field types that this will need
to support to be considered finished.

Second, it only goes forwards. There's no cancel, no returning to previous
questions, etc. It also waits forever (well, until the next restart) for the
user to finish, occupying memory in the session holder until then. We could
also maybe ask confirmation before crossing from one form to another, from the
server's perspective, since there's no guarantee that changes made aren't
immediately applied, rather than waiting for the end. At the very least we
should have timeouts and cancelling though.

Third, there's no error handling at all. It just takes things and assumes
success. That should maybe go along with cancellation, at least, but handling
it with some kind of error message and retry may be nice, if the standard and
the server command accepts it.
Better URL block for whispers
Refactor help command to stop using the -and-then resource hack
Sort discoVars

Needed at least for caps hash
Empty is "available" and should go near the top
Store presence and caps/disco info in redis
Seperate out mapping for SIP URIs so SMS targets don't get caught
Allow calls from blocked caller id
Hardcode sip.cheogram.com for now

Should this be configurable per-user or just per-instance?
Switch to dhall config and add jingle FT stuff
Update to work on latest Debian stable
Support short codes

Closes #51
Experimental start to the tel discovery/verification
Pass proxied stanzas from 1:1 route back through
Proxy through the registration form and record the route