aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge branch 'develop'mousebot2022-04-0515-373/+1003
|\
| * flychecks and docstringsmousebot2022-04-053-3/+7
| |
| * toot: message if translate-toot called without lingva.elmousebot2022-04-051-3/+5
| |
| * toot: missing parens in --reply booster checksmousebot2022-04-051-2/+2
| |
| * toot: indents and flycheckmousebot2022-04-051-10/+11
| |
| * toot--reply: improve mentions in repliesmousebot2022-03-291-6/+20
| | | | | | | | | | | | - make sure we get ID from parent if its a fave/boost - avoid duplicates if user or booster already in mentions list
| * call lingva-translate with optional variable-pitch argmousebot2022-03-251-2/+5
| |
| * Merge pull request '2FA login support' (#255) from ↵martianh2022-03-239-148/+392
| |\ | | | | | | | | | | | | | | | Red_Starfish/mastodon-up.el:login into develop Reviewed-on: https://codeberg.org/martianh/mastodon.el/pulls/255
| | * auth: make mastodon-auth-source-file a defvarAbhiseck Paira2022-02-251-8/+4
| | | | | | | | | | | | | | | The variable `mastodon-auth-source-file' serves no purpose so change it from a defcustom to a defvar. Also update its docstring to document it.
| | * test: fix `mastodon-auth--access-token-not-found'Abhiseck Paira2022-02-251-0/+1
| | |
| | * test: add `mastodon-auth--user-unaware'Abhiseck Paira2022-02-251-0/+8
| | | | | | | | | | | | | | | Test for the situation when old mastodon.el users are unaware of the variable `mastodon-active-user'.
| | * auth: define variable mastodon-auth--user-unawareAbhiseck Paira2022-02-251-0/+15
| | | | | | | | | | | | | | | | | | Hold the explanation string in the variable `mastodon-auth--user-unaware'. This explanation is provided to old mastodon.el users who are not aware of the 2FA related changes.
| | * auth: make old mastodon.el users awareAbhiseck Paira2022-02-252-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most old users of the mastodon.el wouldn't know about the introduction of new variable `mastodon-active-user'[1]. Our goal is to make them aware. Set the default value of [1] to nil. This way we can know that the user hasn't set [1] properly because user is unaware of it. In the definition of `mastodon-auth--access-token', check [1]'s value and if it's null, explain to the user about the new situation. Finally signal the error "Variables not set properly". We have considered the possibility of automating the process but since the new login mechanism depends on setting [1] *in the init file*, the only way to automate it would be to write to user's init file which we consider to be very rude and shouldn't be done by this package.
| | * auth: make the wording in mastodon-auth--explanation clearerAbhiseck Paira2022-02-251-5/+11
| | |
| | * auth: present auth code request in a nicer wayAbhiseck Paira2022-02-251-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using the minibuffer prompt to present the explanation what the user needs to do to get authorization code, use Emacs buffer and Window. The minibuffer prompt should have 2-3 words. This increases the readability of the explanation. Of course delete explanation buffer and restore the window configuration as it was after reading from minibuffer.
| | * auth: change name to mastodon-auth--request-authorization-codeAbhiseck Paira2022-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | Change the name of the function `mastodon-auth--ask-authorization-code' to `mastodon-auth--request-authorization-code'. Suggested-by: Marty Hiatt <martianhiatus@riseup.net>
| | * change '-' to '--' in between function and namespace namesAbhiseck Paira2022-02-235-29/+29
| | | | | | | | | | | | | | | | | | | | | | | | mastodon.el currently follows the convention where all function names should have two dashes (not one dash) in between function and namespace names. Update all function names to follow this convention. See issue #205 and pull request #255
| | * test: add more testAbhiseck Paira2022-02-161-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add the following tests: * mastodon-client--current-user-active-p * mastodon-client-store-access-token * mastodon-client-make-user-active * mastodon-client-form-user-from-vars
| | * test: add test for mastodon-client--general-readAbhiseck Paira2022-02-161-0/+21
| | |
| | * test: fixture: update client.plstore fileAbhiseck Paira2022-02-161-1/+4
| | | | | | | | | | | | update the sample data in fixture/client.plstore file.
| | * test: merge mastodon-client--store1 and *store2Abhiseck Paira2022-02-111-14/+11
| | | | | | | | | | | | | | | | | | Merge `mastodon-client--store1' and `mastodon-client--store2' into a single test `mastodon-client--store' that test the function with the same name.
| | * test: fix mastodon-auth--access-token-not-foundAbhiseck Paira2022-01-271-0/+2
| | | | | | | | | | | | | | | | | | | | | Since the function `mastodon-auth--handle-token-response' now calls `mastodon-client-store-access-token' and `mastodon-client-make-user-active', define mock and stub for them respectively.
| | * test: remove tests for non existent functionsAbhiseck Paira2022-01-271-41/+0
| | | | | | | | | | | | | | | | | | | | | Remove the tests `mastodon-auth--generate-token--no-storing-credentials' and `mastodon-auth--generate-token--storing-credentials' as functions with similar names no longer exist (due to implementation of the new login mechanism)
| | * test: update client website in mastodon-client--registerAbhiseck Paira2022-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The test `mastodon-client--register' specifies that the `mastodon-http--post' be called with a specific value. The value it specified is outdated since mastodon.el's current website has changed. So update the value with URL of the current website.
| | * test: change mastodon files loading orderAbhiseck Paira2022-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before tests start test/ert-helper.el file is loaded which in turn loads other lisp/* files so that required functions and variables are defined during tests. Load lisp/mastodon.el file first before loading other files this solves the complain during tests that `mastodon-active-user' is not defined.
| | * update READMEAbhiseck Paira2022-01-171-13/+19
| | | | | | | | | | | | update the README to inform about the new changes.
| | * update copyright holder infoAbhiseck Paira2022-01-173-0/+3
| | | | | | | | | | | | | | | Update Copyright holder info for files that have undergone non trivial changes.
| | * define autoloads and defvars to silence the byte compilerAbhiseck Paira2022-01-172-0/+9
| | |
| | * make a public interface for accessing user detailsAbhiseck Paira2022-01-171-0/+17
| | | | | | | | | | | | | | | | | | Introduce the function `mastodon-client-active-user' for public use which returns the details of the currently active users. It performs similar function as that of the function `mastodon-client'.
| | * 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'.
| * | attach parent JSON to fave/boost notifs to fix repliesmousebot2022-03-193-8/+13
| | | | | | | | | | | | | | | | | | | | | because we switched to using boost/fave JSON rather than parent, as 'toot-json, replies to these toots were broken (mentions, etc.) so now we attach both bits of data and selectively pull from each.
| * | remove require test for --translate-toot-textmousebot2022-03-181-2/+2
| | | | | | | | | | | | | | | we already have the same test for declaring lingva-translate fun, so this shouldn't be needed and seems to prevent our fun from loading.
| * | readme on translating toots, etcmousebot2022-03-141-2/+19
| | |
| * | add header line to update profile note buffermousebot2022-03-141-0/+4
| | |
| * | autoload and binding for translate-toot-textmousebot2022-03-131-0/+5
| | |
| * | make timestamps for boost/fave notifs the time of orig tootmousebot2022-03-121-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | do not use the time stamp of the boosting/faving. in other views, mastodon-tl--field already handles this by fetching from 'reblog if present, but in notifs, there's no reblog section, and instead there's a status section. so we fetch from status if present, else fallback to using --field. this became necessary when we started attaching the boost/fave json to such notifs, rather than the json of the boosed/faved toot.
| * | make profile--show-user also work on profile headersmousebot2022-03-111-1/+2
| | |
| * | don't add play with mpv help-echo if media type is "unknown"mousebot2022-03-111-1/+3
| | | | | | | | | | | | | | | | | | "unknown" type is given when a media image fails to load or similar. nil is e.g. when a profile picture isn't given, and missing.png is used as a replacement
| * | fix follow etc user when point on profile header infomousebot2022-03-111-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | we just modify the if test to not run in accounts buffers, which means we end up using the next-toot solution, as was originally the case. hopefully a profile view will always have a toot or user or sth. else we cd find a better solution