Added support for favouriting and boosting
Build and Release / run-terraform (push) Successful in 42s
Details
Build and Release / run-terraform (push) Successful in 42s
Details
This commit is contained in:
parent
39145f6a29
commit
10f19b075b
|
@ -1,5 +1,6 @@
|
|||
from mastodon.authorization import MastodonAuthorization
|
||||
from mastodon.config import MastodonConfiguration
|
||||
from mastodon.statuses import Statuses
|
||||
from mastodon.timelines import Timelines
|
||||
|
||||
|
||||
|
@ -9,3 +10,4 @@ class MastodonApplication():
|
|||
self.authorization = MastodonAuthorization(self.config)
|
||||
|
||||
self.timelines = Timelines(self.config, self.authorization)
|
||||
self.statuses = Statuses(self.config, self.authorization)
|
||||
|
|
|
@ -1,2 +1,32 @@
|
|||
from loguru import logger
|
||||
import requests
|
||||
|
||||
|
||||
class Statuses():
|
||||
pass
|
||||
def __init__(self, configuration, authorization):
|
||||
self.config = configuration
|
||||
self.auth = authorization
|
||||
|
||||
def favourite(self, status_id):
|
||||
server = self.config.get_value("server")
|
||||
url = f"https://{server}/api/v1/statuses/{status_id}/favourite"
|
||||
|
||||
response = requests.post(url, headers=self.auth.get_auth_headers())
|
||||
|
||||
logger.trace("JSON: {}".format(str(response.content)))
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
raise RuntimeError("Server returned {} {}".format(response.status_code, response.content))
|
||||
|
||||
def reblog(self, status_id):
|
||||
server = self.config.get_value("server")
|
||||
url = f"https://{server}/api/v1/statuses/{status_id}/reblog"
|
||||
|
||||
response = requests.post(url, headers=self.auth.get_auth_headers())
|
||||
|
||||
logger.trace("JSON: {}".format(str(response.content)))
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
raise RuntimeError("Server returned {} {}".format(response.status_code, response.content))
|
||||
|
|
|
@ -24,4 +24,7 @@ class Timelines():
|
|||
|
||||
response = requests.get(url, headers=self.auth.get_auth_headers(), params=parameters)
|
||||
logger.trace("JSON: {}".format(str(response.content)))
|
||||
return response.json()
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
raise RuntimeError("Server returned {} {}".format(response.status_code, response.content))
|
||||
|
|
|
@ -0,0 +1,142 @@
|
|||
{
|
||||
"id": "103270115826048975",
|
||||
"created_at": "2019-12-08T03:48:33.901Z",
|
||||
"in_reply_to_id": null,
|
||||
"in_reply_to_account_id": null,
|
||||
"sensitive": false,
|
||||
"spoiler_text": "",
|
||||
"visibility": "public",
|
||||
"language": "en",
|
||||
"uri": "https://mastodon.social/users/Gargron/statuses/103270115826048975",
|
||||
"url": "https://mastodon.social/@Gargron/103270115826048975",
|
||||
"replies_count": 5,
|
||||
"reblogs_count": 6,
|
||||
"favourites_count": 11,
|
||||
"favourited": true,
|
||||
"reblogged": false,
|
||||
"muted": false,
|
||||
"bookmarked": false,
|
||||
"content": "<p>"I lost my inheritance with one wrong digit on my sort code"</p><p><a href=\"https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"ellipsis\">theguardian.com/money/2019/dec</span><span class=\"invisible\">/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code</span}</p>",
|
||||
"reblog": null,
|
||||
"application": {
|
||||
"name": "Web",
|
||||
"website": null
|
||||
},
|
||||
"account": {
|
||||
"id": "1",
|
||||
"username": "Gargron",
|
||||
"acct": "Gargron",
|
||||
"display_name": "Eugen",
|
||||
"locked": false,
|
||||
"bot": false,
|
||||
"discoverable": true,
|
||||
"group": false,
|
||||
"created_at": "2016-03-16T14:34:26.392Z",
|
||||
"note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
|
||||
"url": "https://mastodon.social/@Gargron",
|
||||
"avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
|
||||
"avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
|
||||
"header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
|
||||
"header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
|
||||
"followers_count": 322930,
|
||||
"following_count": 459,
|
||||
"statuses_count": 61323,
|
||||
"last_status_at": "2019-12-10T08:14:44.811Z",
|
||||
"emojis": [],
|
||||
"fields": [
|
||||
{
|
||||
"name": "Patreon",
|
||||
"value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span}",
|
||||
"verified_at": null
|
||||
},
|
||||
{
|
||||
"name": "Homepage",
|
||||
"value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span}",
|
||||
"verified_at": "2019-07-15T18:29:57.191+00:00"
|
||||
}
|
||||
]
|
||||
},
|
||||
"media_attachments": [{
|
||||
"id": "22345792",
|
||||
"type": "image",
|
||||
"url": "https://files.mastodon.social/media_attachments/files/022/345/792/original/57859aede991da25.jpeg",
|
||||
"preview_url": "https://files.mastodon.social/media_attachments/files/022/345/792/small/57859aede991da25.jpeg",
|
||||
"remote_url": null,
|
||||
"text_url": "https://mastodon.social/media/2N4uvkuUtPVrkZGysms",
|
||||
"meta": {
|
||||
"original": {
|
||||
"width": 640,
|
||||
"height": 480,
|
||||
"size": "640x480",
|
||||
"aspect": 1.3333333333333333
|
||||
},
|
||||
"small": {
|
||||
"width": 461,
|
||||
"height": 346,
|
||||
"size": "461x346",
|
||||
"aspect": 1.3323699421965318
|
||||
},
|
||||
"focus": {
|
||||
"x": -0.27,
|
||||
"y": 0.51
|
||||
}
|
||||
},
|
||||
"description": "test media description",
|
||||
"blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
|
||||
},
|
||||
{
|
||||
"id": "22546306",
|
||||
"type": "video",
|
||||
"url": "https://files.mastodon.social/media_attachments/files/022/546/306/original/dab9a597f68b9745.mp4",
|
||||
"preview_url": "https://files.mastodon.social/media_attachments/files/022/546/306/small/dab9a597f68b9745.png",
|
||||
"remote_url": null,
|
||||
"text_url": "https://mastodon.social/media/wWd1HJIBmH1MZGDfg50",
|
||||
"meta": {
|
||||
"length": "0:01:28.65",
|
||||
"duration": 88.65,
|
||||
"fps": 24,
|
||||
"size": "1280x720",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"aspect": 1.7777777777777777,
|
||||
"audio_encode": "aac (LC) (mp4a / 0x6134706D)",
|
||||
"audio_bitrate": "44100 Hz",
|
||||
"audio_channels": "stereo",
|
||||
"original": {
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"frame_rate": "6159375/249269",
|
||||
"duration": 88.654,
|
||||
"bitrate": 862056
|
||||
},
|
||||
"small": {
|
||||
"width": 400,
|
||||
"height": 225,
|
||||
"size": "400x225",
|
||||
"aspect": 1.7777777777777777
|
||||
}
|
||||
},
|
||||
"description": null,
|
||||
"blurhash": "U58E0g8_0M.94T?bIr00?bD%NGoM?bD%oLt7"
|
||||
}
|
||||
],
|
||||
"mentions": [],
|
||||
"tags": [],
|
||||
"emojis": [],
|
||||
"card": {
|
||||
"url": "https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code",
|
||||
"title": "‘I lost my £193,000 inheritance – with one wrong digit on my sort code’",
|
||||
"description": "When Peter Teich’s money went to another Barclays customer, the bank offered £25 as a token gesture",
|
||||
"type": "link",
|
||||
"author_name": "",
|
||||
"author_url": "",
|
||||
"provider_name": "",
|
||||
"provider_url": "",
|
||||
"html": "",
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"image": null,
|
||||
"embed_url": ""
|
||||
},
|
||||
"poll": null
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
{
|
||||
"id": "103270115826048975",
|
||||
"created_at": "2019-12-08T03:48:33.901Z",
|
||||
"in_reply_to_id": null,
|
||||
"in_reply_to_account_id": null,
|
||||
"sensitive": false,
|
||||
"spoiler_text": "",
|
||||
"visibility": "public",
|
||||
"language": "en",
|
||||
"uri": "https://mastodon.social/users/Gargron/statuses/103270115826048975",
|
||||
"url": "https://mastodon.social/@Gargron/103270115826048975",
|
||||
"replies_count": 5,
|
||||
"reblogs_count": 6,
|
||||
"favourites_count": 11,
|
||||
"favourited": false,
|
||||
"reblogged": true,
|
||||
"muted": false,
|
||||
"bookmarked": false,
|
||||
"content": "<p>"I lost my inheritance with one wrong digit on my sort code"</p><p><a href=\"https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"ellipsis\">theguardian.com/money/2019/dec</span><span class=\"invisible\">/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code</span}</p>",
|
||||
"reblog": null,
|
||||
"application": {
|
||||
"name": "Web",
|
||||
"website": null
|
||||
},
|
||||
"account": {
|
||||
"id": "1",
|
||||
"username": "Gargron",
|
||||
"acct": "Gargron",
|
||||
"display_name": "Eugen",
|
||||
"locked": false,
|
||||
"bot": false,
|
||||
"discoverable": true,
|
||||
"group": false,
|
||||
"created_at": "2016-03-16T14:34:26.392Z",
|
||||
"note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
|
||||
"url": "https://mastodon.social/@Gargron",
|
||||
"avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
|
||||
"avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
|
||||
"header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
|
||||
"header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
|
||||
"followers_count": 322930,
|
||||
"following_count": 459,
|
||||
"statuses_count": 61323,
|
||||
"last_status_at": "2019-12-10T08:14:44.811Z",
|
||||
"emojis": [],
|
||||
"fields": [
|
||||
{
|
||||
"name": "Patreon",
|
||||
"value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span}",
|
||||
"verified_at": null
|
||||
},
|
||||
{
|
||||
"name": "Homepage",
|
||||
"value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span}",
|
||||
"verified_at": "2019-07-15T18:29:57.191+00:00"
|
||||
}
|
||||
]
|
||||
},
|
||||
"media_attachments": [{
|
||||
"id": "22345792",
|
||||
"type": "image",
|
||||
"url": "https://files.mastodon.social/media_attachments/files/022/345/792/original/57859aede991da25.jpeg",
|
||||
"preview_url": "https://files.mastodon.social/media_attachments/files/022/345/792/small/57859aede991da25.jpeg",
|
||||
"remote_url": null,
|
||||
"text_url": "https://mastodon.social/media/2N4uvkuUtPVrkZGysms",
|
||||
"meta": {
|
||||
"original": {
|
||||
"width": 640,
|
||||
"height": 480,
|
||||
"size": "640x480",
|
||||
"aspect": 1.3333333333333333
|
||||
},
|
||||
"small": {
|
||||
"width": 461,
|
||||
"height": 346,
|
||||
"size": "461x346",
|
||||
"aspect": 1.3323699421965318
|
||||
},
|
||||
"focus": {
|
||||
"x": -0.27,
|
||||
"y": 0.51
|
||||
}
|
||||
},
|
||||
"description": "test media description",
|
||||
"blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
|
||||
},
|
||||
{
|
||||
"id": "22546306",
|
||||
"type": "video",
|
||||
"url": "https://files.mastodon.social/media_attachments/files/022/546/306/original/dab9a597f68b9745.mp4",
|
||||
"preview_url": "https://files.mastodon.social/media_attachments/files/022/546/306/small/dab9a597f68b9745.png",
|
||||
"remote_url": null,
|
||||
"text_url": "https://mastodon.social/media/wWd1HJIBmH1MZGDfg50",
|
||||
"meta": {
|
||||
"length": "0:01:28.65",
|
||||
"duration": 88.65,
|
||||
"fps": 24,
|
||||
"size": "1280x720",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"aspect": 1.7777777777777777,
|
||||
"audio_encode": "aac (LC) (mp4a / 0x6134706D)",
|
||||
"audio_bitrate": "44100 Hz",
|
||||
"audio_channels": "stereo",
|
||||
"original": {
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"frame_rate": "6159375/249269",
|
||||
"duration": 88.654,
|
||||
"bitrate": 862056
|
||||
},
|
||||
"small": {
|
||||
"width": 400,
|
||||
"height": 225,
|
||||
"size": "400x225",
|
||||
"aspect": 1.7777777777777777
|
||||
}
|
||||
},
|
||||
"description": null,
|
||||
"blurhash": "U58E0g8_0M.94T?bIr00?bD%NGoM?bD%oLt7"
|
||||
}
|
||||
],
|
||||
"mentions": [],
|
||||
"tags": [],
|
||||
"emojis": [],
|
||||
"card": {
|
||||
"url": "https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code",
|
||||
"title": "‘I lost my £193,000 inheritance – with one wrong digit on my sort code’",
|
||||
"description": "When Peter Teich’s money went to another Barclays customer, the bank offered £25 as a token gesture",
|
||||
"type": "link",
|
||||
"author_name": "",
|
||||
"author_url": "",
|
||||
"provider_name": "",
|
||||
"provider_url": "",
|
||||
"html": "",
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"image": null,
|
||||
"embed_url": ""
|
||||
},
|
||||
"poll": null
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
from mastodon.application import MastodonApplication
|
||||
from mastodon.timelines import Timelines
|
||||
from mastodon.model.status import Status
|
||||
from loguru import logger
|
||||
import json
|
||||
import pytest
|
||||
from responses import matchers
|
||||
import responses
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def app():
|
||||
yield MastodonApplication("pymastodon")
|
||||
|
||||
@responses.activate
|
||||
def test_favourite(app):
|
||||
responses.post("https://social.example.com/api/v1/statuses/1234/favourite", json=json_reader("./tests/resources/favourite_response.json"))
|
||||
response = app.statuses.favourite("1234")
|
||||
assert response is not None
|
||||
try:
|
||||
status = Status.model_validate(response)
|
||||
assert status.favourited == True
|
||||
except Exception as ve:
|
||||
logger.debug(response)
|
||||
logger.error(ve)
|
||||
|
||||
@responses.activate
|
||||
def test_favourite(app):
|
||||
responses.post("https://social.example.com/api/v1/statuses/1234/reblog", json=json_reader("./tests/resources/reblog_response.json"))
|
||||
response = app.statuses.reblog("1234")
|
||||
assert response is not None
|
||||
try:
|
||||
status = Status.model_validate(response)
|
||||
assert status.reblogged == True
|
||||
except Exception as ve:
|
||||
logger.debug(response)
|
||||
logger.error(ve)
|
||||
|
||||
|
||||
def json_reader(path):
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
Loading…
Reference in New Issue