1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2024-12-28 00:20:00 +01:00
Mirror of the repository for tinmop (a client for pleroma with a terminal interface), please point the browser to https://codeberg.org/cage/tinmop/issues to report issues. https://www.autistici.org/interzona/tinmop.html
Go to file
2020-12-13 20:56:27 +01:00
doc - added a command line option to retrieve a gemini URL. 2020-06-23 15:51:43 +02:00
etc - exposed to the UI 'refresh-chats'; 2020-12-08 11:31:21 +01:00
m4 - initial commit. 2020-05-08 15:45:43 +02:00
po - updated italian translation. 2020-09-18 16:35:12 +02:00
src - specialize 'normalize-path' on iri; 2020-12-13 16:27:22 +01:00
.gitignore - Added Makefile.in. 2020-08-19 18:06:49 +02:00
aclocal.m4 - initial commit. 2020-05-08 15:45:43 +02:00
ChangeLog - tracking changes. 2020-12-11 11:42:01 +01:00
compare_version.awk - initial commit. 2020-05-08 15:45:43 +02:00
compile - initial commit. 2020-05-08 15:45:43 +02:00
config.guess - initial commit. 2020-05-08 15:45:43 +02:00
config.rpath - initial commit. 2020-05-08 15:45:43 +02:00
config.sub - initial commit. 2020-05-08 15:45:43 +02:00
configure - fixed ssl checking in configure script (was given error when the library was actually found). 2020-12-13 20:56:27 +01:00
configure.ac - fixed ssl checking in configure script (was given error when the library was actually found). 2020-12-13 20:56:27 +01:00
CONTRIBUTING.org - initial commit. 2020-05-08 15:45:43 +02:00
COPYING - initial commit. 2020-05-08 15:45:43 +02:00
install-sh - initial commit. 2020-05-08 15:45:43 +02:00
LICENSES.org - replaced quri with an internal parser; 2020-10-25 19:58:05 +01:00
Makefile.am - [gemini] starting using certificates; 2020-10-11 18:22:07 +02:00
Makefile.in - [gemini] starting using certificates; 2020-10-11 18:22:07 +02:00
missing - initial commit. 2020-05-08 15:45:43 +02:00
NEWS.org - updated version. 2020-12-11 11:46:11 +01:00
quick_quicklisp.sh.in - removing quri from building script. 2020-10-25 20:32:31 +01:00
README.org - added mention of gcc and xgettext in README. 2020-12-13 16:30:26 +01:00
README.txt - added mention of gcc and xgettext in README. 2020-12-13 16:30:26 +01:00
tinmop.asd - added IRI parser. 2020-12-13 15:27:55 +01:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

                                ━━━━━━━━
                                 TINMOP
                                ━━━━━━━━


Table of Contents
─────────────────

1. Introduction
2. Peculiar Features
.. 1. Important note
3. Dependency
.. 1. Programs
.. 2. Lisp Libraries
.. 3. Foreign (C language) library
4. Install
5. Usage
6. BUGS
7. Translations
8. License
9. Privacy
10. Contributing
11. FAQ
12. NO WARRANTY
13. Acknowledgment





1 Introduction
══════════════

  Tinmop is an opinionated client for [Pleroma] (using the mastodon API)
  and [gemini protocol].  It offer a distraction free terminal
  interface.

  The name is a recursive acronym: "Tinmop Is Not Mutt or Pine".  The
  older of us can remember that, in turn, Pine is sometimes considered
  an acronym as well: "Pine Is Not Elm" and, finally, Elm means
  (according to Wikipedia): "Electronic Mail".


[Pleroma] <https://pleroma.social/>

[gemini protocol] <https://gemini.circumlunar.space/>


2 Peculiar Features
═══════════════════

  • tree structure of messages;
  • subscriptions of hashtag;
  • programmable and extensible;
  • encrypted direct message (but see 11);
  • no mentions notification, no knowledge of when or who favourited
    your status;
  • No blocking or muting, the client can be configured to ignore a list
    of accounts.


2.1 Important note
──────────────────

  This is alpha quality software, many things are broken, some feature
  are missing some works with unintended/unexpected side effects; this
  software is for testing only and remember that there is [NO WARRANTY].


[NO WARRANTY] See section 12


3 Dependency
════════════

3.1 Programs
────────────

   to build the package: xgettext; a C compiler.

   to install the package, including running the script to install lisp
    libraries (`quick_quicklisp.sh'):
    • GNU AWK (Gawk);
    • BASH shell.

   to run the program:
    • SBCL compiler;
    • xdg-open;
    • your favourite editor (default: nano).


3.2 Lisp Libraries
──────────────────

  • alexandria;
  • cl-ppcre;
  • tooter;
  • croatoan;
  • osicat;
  • cl-spark;
  • access;
  • sqlite;
  • sxql;
  • sxql-composer;
  • marshal;
  • bordeaux-threads;
  • log4cl;
  • local-time;
  • cl-colors2;
  • cl-i18n;
  • clunit2;
  • esrap;
  • ieee-floats;
  • parse-number;
  • cl-html5-parser;
  • unix-opts;
  • crypto-shortcuts;
  • drakma.


3.3 Foreign (C language) library
────────────────────────────────

  • libssl (TLS socket)
  • linidn2 (i18n domain name aka idna)


4 Install
═════════

  1. optional step needed only if you have not already the configure
     script, you will need `autotools' for that.

     ┌────
     │ $ autoreconf -fiv
     └────

  2. run `configure' and resolve the missing dependencies (if any)

     ┌────
     │ $ ./configure
     └────

  3. the script `quick-quicklisp.sh' will download and install the
     library manager and the library on your home dir.

     ┌────
     │ $ ./quick_quicklisp.sh
     └────

     This step is optional if you have already installed quicklisp, in
     this case just load the [dependencies] using the client installed
     on your computer.

  4. clone in `$HOME/quicklisp/local-projects/' the latest version of
     tooter, a library to access mastodon API.

     This step is temporary as this version will get into quicklisp
     eventually.
     ┌────
     │ $ cd $HOME/quicklisp/local-projects/
     │ $ git clone https://github.com/Shinmera/tooter.git
     └────

  5. clone in `$HOME/quicklisp/local-projects/' the latest version of
     croatoan, a library to wrap the ncurses TUI library.

     This step is temporary as this version will get into quicklisp
     eventually.
     ┌────
     │ $ cd $HOME/quicklisp/local-projects/
     │ $ git clone https://github.com/McParen/croatoan.git
     └────

  6. build the executable:

     ┌────
     │ $ make
     └────

  7. install on your system:

     ┌────
     │ $ make install
     └────

  8. run the software!

     ┌────
     │ $ tinmop
     └────


[dependencies] See section 3


5 Usage
═══════

  See the command line options:

  ┌────
  │ $ tinmop -h
  └────

  To get instruction about configuration:

  ┌────
  │ $ man tinmop
  └────


6 BUGS
══════

  Please file bug reports on the [notabug repository].


[notabug repository] <https://notabug.org/cage/tinmop/>


7 Translations
══════════════

  Only Italian translation is regularly updated.


8 License
═════════

  This program is released under GNU General Public license version 3 or
  later (see COPYING file).

  The program use data and code from other sources, please see
  LICENSES.org for credits.

  Although any efforts has been put to make the list of credits
  exhaustive, errors are always possible.  Please send correction to
  cage-dev at twistfold dot it.


9 Privacy
═════════

  The author of this software collects no user data information with
  this software.

  But this software is a client to connect and interact to one or more
  remote computer.  So potentially it could share a lot of information
  with other actors but just after the user allowed it to do so.

  It is the user responsibility to checks the privacy conditions of the
  instance this software connect to.

  Moreover launching `quick_quicklisp.sh' will contact
  <https://www.quicklisp.org/>, check the [quicklisp sources] for
  details.

  By default, pressing "!" will contact the remote service located at:
  "gemini://houston.coder.town/search".


[quicklisp sources] <https://beta.quicklisp.org/quicklisp.lisp>


10 Contributing
═══════════════

  Any help is appreciated. If you intend to contribute please point your
  browser to the [issue tracker] or file a [pull request].

  But, please take a minute to read the file <./CONTRIBUTING.org>


[issue tracker] <https://notabug.org/cage/tinmop/issues>

[pull request] <https://notabug.org/cage/tinmop/pulls>


11 FAQ
══════

  • Is tinmop compatible with mastodon servers?

    Unfortunately no, the way some API endpoint provide the toots is not
    suitable for this client, for more information please go [here].

    I hope this will change in the future but this depends entirely from
    the people are developing the server.

  • I just tried to start the program for the first time but it give me
    a weird error, what's wrong?

    Did you wrote a configuration file before starting?

    Tinmop expects a configuration file in your config directory
    (usually `$HOME/.config/tinmop/').  This file must contains at least
    the username and the name of the instance you want to connect. If
    this file does not exists or is invalid tinmop will refuse to start.

    Please check the man page (tinmop(1)) for more information.

  • OK the program is running but how can i use it?

    Press the key `?' to get a list of the available keys available.

  • Tinmop crashed! Where can i report that?

    The issue tracker is here:

    <https://notabug.org/tinmop/issues/>

    Please also, if possible, send the backtrace of the process. To
    print a backtrace just write `backtrace' when the debugger has been
    invoked.

    *Important note*

    The backtrace can contains sensitive and personal information,
    please always *carefully checks* the backtrace contents before
    making this information public!

  • Are the encrypted messages secure?

    *No*. First only a symmetric encryption scheme is implemented (so
    there is a problem of secure key exchanging). Moreover i am not a
    crypto expert and probably i made something wrong. Note that i am
    not claiming that the algorithm (AES256) or the implementation of
    such encrypting algorithm is flawed but that, likely, is flawed the
    code i wrote to use the crypto library in this software.

    So, please do not consider the encrypted message secure at all.


[here] <https://github.com/tootsuite/mastodon/issues/13817>


12 NO WARRANTY
══════════════

  tinmop: an humble mastodon client Copyright (C) 2020 cage

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or (at
  your option) any later version.

  This program is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see [http://www.gnu.org/licenses/].


[http://www.gnu.org/licenses/] <http://www.gnu.org/licenses/>


13 Acknowledgment
═════════════════

  My deep thanks to the folks that provided us with wonderful SBCL and
  Common lisp libraries.

  In particular i want to thanks the authors of the libraries Croatoan
  and Tooter for their help when I started to develop this program.

  There are more people i borrowed code and data from, they are
  mentioned in the file LINCENSES.org

  This program is was born also with the help of CCCP: "Collettivo
  Computer Club Palermo".

  Also thanks to "barbar" for testing of the installation scripts.