aboutsummaryrefslogtreecommitdiff
path: root/lisp
Commit message (Collapse)AuthorAgeFilesLines
* functions for making/checking active usersAbhiseck Paira2022-01-171-0/+27
| | | | | | | | | | | | | Define functions for like: * mastodon-client-make-user-active: Take one argument USER-DETAILS and make it the user details of the active user. * mastodon-client--make-current-user-active: Make the user details specified in the init file the current user. * mastodon-client--current-user-active-p: Return user-details if the current user is active, otherwise return nil.
* store access token in plstore of the current userAbhiseck Paira2022-01-171-0/+22
| | | | | | | | | Store access token in the plstore of the current user. To do that introduce the function `mastodon-client-store-access-token' of one argument TOKEN. Also define a helper function `mastodon-client--make-user-details-plist' which creates a plist with current users details and returns it.
* get account ID from user variables specified in the init fileAbhiseck Paira2022-01-171-0/+9
| | | | | | | | | Get user account ID from the mastodon variables specified in the init file by introducing the function `mastodon-client-form-user-from-vars'. Return user account ID in the form "user@instance.com" when the values of `mastodon-active-user' and `mastodon-instance-url' are "user" and "https://instance.com" respectively.
* introduce a general plstore reading functionAbhiseck Paira2022-01-171-0/+7
| | | | | | Introduce a general version of `mastodon-client--read'[1] with the name `mastodon-client--general-read'[2] as [1] is too specific. [2] can be called with with a plstore "key" to retrieve the item keyed by that KEY.
* abstract plstore implementation details of getting valueAbhiseck Paira2022-01-171-1/+7
| | | | | | | | Introduce a new function `mastodon-client--remove-key-from-plstore' which removes "key" part from a plstore item. Refactor `mastodon-client--read' to use `mastodon-client--remove-key-from-plstore'.
* refactor *-access-token and *-handle-token-responseAbhiseck Paira2022-01-131-10/+22
| | | | | | Refactor `mastodon-auth--access-token' and `mastodon-auth--handle-token-response' to work with the new authentication mechanism.
* remove functions no longer neededAbhiseck Paira2022-01-131-43/+0
| | | | | | Remove `mastodon-auth--generate-token-no-storing-credentials' and 'mastodon-auth--generate-token-and-store' as these two are no longer needed.
* re-implement user auth and token generation mechanismAbhiseck Paira2022-01-131-10/+36
| | | | | | | | | | | | | | | | | | Refactor `mastodon-auth--generate-token' to work with new user authentication and token generation mechanism. This enables mastodon.el to work with 2FA and also not to handle password directly. In this implementation mastodon-auth--generate-token gets authorization code from the user and sends post request to mastodon server. Ask for authorization code from the user using two helper functions: * mastodon-auth--ask-authorization-code: Explain to the user what the user needs to do to get the authorization code. Store this explanation message in variable `mastodon-auth--explanation'. * mastodon-auth--get-browser-login-url: Return a appropriate query string appended to url to the caller, which is needed by the user to access the authorization code.
* abstract Mastodon API request infoAbhiseck Paira2022-01-131-4/+13
| | | | | | | | | | | | | | | | | Mastodon API requires some info that needs to be passed during app registration and user authentication. Those info were hard coded into various functions. Introduce three variables (defvars): 1. mastodon-client-scopes 2. mastodon-client-website 3. mastodon-client-redirect-uri use them to abstract those info. Also refactor `mastodon-client--register' function in terms of these variables.
* add helper function `mastodon-http-append-query-string'Abhiseck Paira2022-01-131-0/+8
| | | | | | Add helper function `mastodon-http-append-query-string' which create URLs with query strings appended to its end. (see doc string for details.)
* mastodon.el: update `mastodon-instance-url' docstringAbhiseck Paira2022-01-131-1/+15
| | | | | | Update the docstring for the defcustom `mastodon-instance-url' to clarify what it's value should be to reflect the changes introduced in the previous commit.
* mastodon.el: introduce new defcustom `mastodon-active-user'Abhiseck Paira2022-01-131-0/+13
| | | | | | | | | | | Use `mastodon-active-user' and `mastodon-instance-url' to determine which mastodon account the user wants to be active for the current session of Emacs. See the documentation string of this variable for details on how to use it. This new variable becomes necessary to prevent conflict when a user has two accounts on the same instance, that is same value of `mastodon-instance-url'.
* keep mastodon-toot--max-toot-chars a number not a string.mousebot2022-01-121-4/+3
| | | | | we use it as a number various times so let's leave it a number, then convert to string for display in toot info.
* byte compile warningsmousebot2022-01-111-2/+3
|
* FIX local mentions/links checkingmousebot2022-01-111-9/+9
| | | | | | | | | | | we remove the hacky non-check for a user handle from mastodon-tl--process-link, so that it /always/ runs mastodon-tl--extract-userhandle-from-url. the in extract-userhandle-from-url, we test if the url host = local instance. if so, we just return buffer-text, which = "@user", with no suffix. else we return a full "@user@instance.url" handle. remove unused var after fix to userhandle parsing
* FIX fetching max toot length from servermousebot2022-01-111-4/+12
| | | | | | | | some servers have 'max_toot_chars, but others seem to have 'max_characters, under statuses, under configuation. we allow for both types, but also we check our var isn't nil before trying to check it's length, which broke toot--send in some cases.
* add support for poll notificationsmousebot2022-01-101-4/+12
| | | | finally we now display all types of notifications! it's about bloody time.
* refactor notification functionsmousebot2022-01-031-75/+48
|
* fix follow-request-process: change "accept" to "authorize"mousebot2021-12-291-7/+8
|
* pleroma compat commentmousebot2021-12-251-0/+1
|
* reload on pin togglemousebot2021-12-251-2/+6
|
* Merge branch 'insert-status-refactor' into developmousebot2021-12-242-17/+9
|\
| * refactor mastodon-notifications--insert-statusmousebot2021-12-242-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | which was a copy of mastodon-tl--insert-status. we revert to having just the latter as main function with optional argument. mastodon-notifications--insert-status just calls it with the arg ID. the reason we need the difference is to ensure notifications have their own ID, and not that of the toot the notif refers to, attached as property "toot-id". then we have all functionality working on notifications, such as boosting mentions and so on.
* | refactor follow request accept/reject functions.mousebot2021-12-243-82/+33
|/ | | | | | | | | | previously we had duplication of functions depending on whether we were in follow requests view or notificaitons view. now we just check which kind of f-req we have and act accordingly. main function being `mastodon-notifications--follow-request-process'. also updates keybindings for both views. we no longer need them included separately in profile-mode.
* text-mode for toot compose buffermousebot2021-12-241-1/+1
| | | | and remove duplicate mastodon-toot-mode call.
* tiny ediff clean up 2.mousebot2021-12-232-5/+3
|
* Merge branch 'main' into developmousebot2021-12-232-13/+11
|\
| * apply pleroma patch from #208mousebot2021-12-231-0/+2
| |
| * tiny cleanups after Ediff main / mastermousebot2021-12-231-14/+10
| |
| * remove all ^M from update profile note buffermousebot2021-12-211-0/+1
| |
| * override 'O' binding on links to my-profilemousebot2021-12-211-0/+2
| |
* | remove all ^M from update profile note buffermousebot2021-12-211-0/+1
| |
* | override 'O' binding on links to my-profilemousebot2021-12-211-0/+2
| |
* | docstring and move pin toot togglemousebot2021-12-201-21/+18
| |
* | improve delete toot testsmousebot2021-12-201-0/+2
| |
* | remove old commentsmousebot2021-12-201-6/+1
| |
* | refactoring delete/redraft functionsmousebot2021-12-201-37/+43
| |
* | typos and docstringsmousebot2021-12-203-9/+13
|/
* autoload typomousebot2021-12-171-1/+1
|
* improve faves count help-echo propertizingmousebot2021-12-171-10/+30
| | | | | | | | - add `mastodon-tl--format-faves-count function - handle notifications formatting (get 'status field of toot) - apply to author-byline formatting - apply to the (F) and (B) formatting for faves/boosts - ensures where point lands after `mastodon-tl--goto-next-toot is always propertized
* y-or-n-p before cancelling a toot.mousebot2021-12-171-1/+7
|
* mapcar* -> cl-mapcar in -tl.elmousebot2021-12-171-3/+2
|
* bump version to a round numbermousebot2021-12-1713-13/+13
|
* cl-lib not cl for mapcar* in -tlmousebot2021-12-171-2/+2
|
* boilerplate maintainer contactmousebot2021-12-1713-1/+16
|
* depend on emacs 27.1, flychecks, docstrings, etc.mousebot2021-12-1713-25/+37
| | | | strictly, the 27.1 dependency is only for proper-list-p in -http.el.
* bump version, change homepage link, readmemousebot2021-12-1713-26/+26
|
* revert echo faves on toot text in thread viewmousebot2021-12-171-12/+1
| | | | | | because it breaks propertizing of links/handles. so echo faves is now only on byline author name.
* keep "O"/my-profile binding when point on image.mousebot2021-12-171-0/+2
|
* FIX echo faves in thread view clashing with media help-echomousebot2021-12-171-16/+28
| | | | | | | | | | | | | move help-echo propertizing to author name of byline, in `mastodon-tl--byline-author'. so when we use `goto-next-toot' point is on author and we get the help echo and add the same help-echo to `mastodon-tl--content', but only when in thread view. this ensures the propertizing occurs prior to any image propertizing, when will then only replace the faves propertizing for the image part of the given toot. that way we have help echo for images when we want, and faves count otherwise.