shep 0.1.0.pre.alpha0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/Copyright.txt +8 -0
  3. data/LICENSE.txt +697 -0
  4. data/README.md +101 -0
  5. data/Rakefile +52 -0
  6. data/doc/Shep/Entity/Account.html +193 -0
  7. data/doc/Shep/Entity/Context.html +165 -0
  8. data/doc/Shep/Entity/CustomEmoji.html +171 -0
  9. data/doc/Shep/Entity/MediaAttachment.html +175 -0
  10. data/doc/Shep/Entity/Notification.html +171 -0
  11. data/doc/Shep/Entity/Status.html +217 -0
  12. data/doc/Shep/Entity/StatusSource.html +167 -0
  13. data/doc/Shep/Entity/Status_Application.html +167 -0
  14. data/doc/Shep/Entity/Status_Mention.html +169 -0
  15. data/doc/Shep/Entity/Status_Tag.html +165 -0
  16. data/doc/Shep/Entity.html +1457 -0
  17. data/doc/Shep/Error/Caller.html +147 -0
  18. data/doc/Shep/Error/Http.html +329 -0
  19. data/doc/Shep/Error/Remote.html +143 -0
  20. data/doc/Shep/Error/Server.html +147 -0
  21. data/doc/Shep/Error/Type.html +233 -0
  22. data/doc/Shep/Error.html +149 -0
  23. data/doc/Shep/Session.html +4094 -0
  24. data/doc/Shep.html +128 -0
  25. data/doc/_index.html +300 -0
  26. data/doc/class_list.html +51 -0
  27. data/doc/css/common.css +1 -0
  28. data/doc/css/full_list.css +58 -0
  29. data/doc/css/style.css +497 -0
  30. data/doc/file.README.html +159 -0
  31. data/doc/file_list.html +56 -0
  32. data/doc/frames.html +17 -0
  33. data/doc/index.html +300 -0
  34. data/doc/js/app.js +314 -0
  35. data/doc/js/full_list.js +216 -0
  36. data/doc/js/jquery.js +4 -0
  37. data/doc/method_list.html +387 -0
  38. data/doc/top-level-namespace.html +110 -0
  39. data/lib/shep/entities.rb +164 -0
  40. data/lib/shep/entity_base.rb +378 -0
  41. data/lib/shep/exceptions.rb +78 -0
  42. data/lib/shep/session.rb +970 -0
  43. data/lib/shep/typeboxes.rb +180 -0
  44. data/lib/shep.rb +22 -0
  45. data/run_rake_test.example.sh +46 -0
  46. data/shep.gemspec +28 -0
  47. data/spec/data/smallimg.jpg +0 -0
  48. data/spec/data/smallish.jpg +0 -0
  49. data/spec/entity_common.rb +120 -0
  50. data/spec/entity_t1_spec.rb +168 -0
  51. data/spec/entity_t2_spec.rb +123 -0
  52. data/spec/entity_t3_spec.rb +30 -0
  53. data/spec/json_objects/account.1.json +25 -0
  54. data/spec/json_objects/account.2.json +36 -0
  55. data/spec/json_objects/status.1.json +85 -0
  56. data/spec/json_objects/status.2.json +59 -0
  57. data/spec/json_objects/status.3.json +95 -0
  58. data/spec/json_objects/status.4.json +95 -0
  59. data/spec/json_objects/status.5.json +74 -0
  60. data/spec/json_objects/status.6.json +140 -0
  61. data/spec/json_objects/status.7.json +84 -0
  62. data/spec/session_reader_1_unauth_spec.rb +366 -0
  63. data/spec/session_reader_2_auth_spec.rb +96 -0
  64. data/spec/session_writer_spec.rb +183 -0
  65. data/spec/spec_helper.rb +73 -0
  66. data/yard_helper.rb +30 -0
  67. metadata +154 -0
@@ -0,0 +1,30 @@
1
+
2
+ require_relative '../lib/shep.rb'
3
+ require_relative 'spec_helper.rb'
4
+
5
+ include Shep
6
+
7
+ describe Entity, :offline do
8
+ it "real-world subclasses initialize from real-world JSON." do
9
+ entities = [Entity::Account, Entity::Status]
10
+
11
+ puts "" # newline so the filenames are nicely aligned
12
+
13
+ sample_dir = File.join(File.dirname(__FILE__), 'json_objects')
14
+ for ek in entities
15
+ name = ek.to_s.downcase.split('::')[-1]
16
+
17
+ for sample in Dir.glob(File.join(sample_dir, "#{name}.*.json"))
18
+ puts "read: #{File.basename(sample)}"
19
+
20
+ json = open(sample, "r") { |fh| JSON.parse( fh.read ) }
21
+ entity = ek.from(json)
22
+
23
+ json2 = JSON.generate(entity.to_h(true)) # probalby overkill
24
+ entity2 = ek.from(JSON.parse(json2))
25
+
26
+ expect( entity2 ) .to eq entity
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ {
2
+ "id": "22411",
3
+ "username": "testingtesting123",
4
+ "acct": "testingtesting123",
5
+ "display_name": "scratchmonkey_15310",
6
+ "locked": false,
7
+ "bot": false,
8
+ "discoverable": null,
9
+ "group": false,
10
+ "created_at": "2018-01-20T00:00:00.000Z",
11
+ "note": "<p>Account used for bot testing; nothing to see here.</p><p><span class=\"h-card\"><a href=\"https://i.write.codethat.sucks/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span><br /><span class=\"h-card\"><a href=\"https://botsin.space/@benoitmandelbot\" class=\"u-url mention\">@<span>benoitmandelbot</span></a></span></p>",
12
+ "url": "https://botsin.space/@testingtesting123",
13
+ "avatar": "https://files.botsin.space/accounts/avatars/000/022/411/original/a701d93a6a1d0497.gif",
14
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/022/411/static/a701d93a6a1d0497.png",
15
+ "header": "https://botsin.space/headers/original/missing.png",
16
+ "header_static": "https://botsin.space/headers/original/missing.png",
17
+ "followers_count": 2,
18
+ "following_count": 3,
19
+ "statuses_count": 4,
20
+ "last_status_at": null,
21
+ "noindex": true,
22
+ "emojis": [],
23
+ "roles": [],
24
+ "fields": []
25
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "19191",
3
+ "username": "benoitmandelbot",
4
+ "acct": "benoitmandelbot",
5
+ "display_name": "Benoit Mandelbot",
6
+ "locked": false,
7
+ "bot": true,
8
+ "discoverable": false,
9
+ "group": false,
10
+ "created_at": "2017-12-02T00:00:00.000Z",
11
+ "note": "<p>z = z^2 + c</p><p><span class=\"h-card\"><a href=\"https://freeradical.zone/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span></p><p>(RIP mastodon.technology)</p>",
12
+ "url": "https://botsin.space/@benoitmandelbot",
13
+ "avatar": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
14
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
15
+ "header": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
16
+ "header_static": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
17
+ "followers_count": 1629,
18
+ "following_count": 2,
19
+ "statuses_count": 7769,
20
+ "last_status_at": "2023-05-15",
21
+ "noindex": false,
22
+ "emojis": [],
23
+ "roles": [],
24
+ "fields": [
25
+ {
26
+ "name": "Bot:",
27
+ "value": "Yes",
28
+ "verified_at": null
29
+ },
30
+ {
31
+ "name": "Source Code:",
32
+ "value": "<a href=\"https://gitlab.com/suetanvil/benoit\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://</span><span class=\"\">gitlab.com/suetanvil/benoit</span><span class=\"invisible\"></span></a>",
33
+ "verified_at": null
34
+ }
35
+ ]
36
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "id": "99386156647991032",
3
+ "created_at": "2018-01-21T05:26:40.063Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": "en",
10
+ "uri": "https://botsin.space/users/testingtesting123/statuses/99386156647991032",
11
+ "url": "https://botsin.space/@testingtesting123/99386156647991032",
12
+ "replies_count": 0,
13
+ "reblogs_count": 0,
14
+ "favourites_count": 0,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "pinned": false,
21
+ "content": "<p>position: -0.1383011763321721 + 0.8550074321180192i<br />pixel width: 5.146316435659457e-06</p>",
22
+ "filtered": [],
23
+ "reblog": null,
24
+ "application": {
25
+ "name": "benoit-mandelbot",
26
+ "website": null
27
+ },
28
+ "account": {
29
+ "id": "22411",
30
+ "username": "testingtesting123",
31
+ "acct": "testingtesting123",
32
+ "display_name": "scratchmonkey_15310",
33
+ "locked": false,
34
+ "bot": false,
35
+ "discoverable": null,
36
+ "group": false,
37
+ "created_at": "2018-01-20T00:00:00.000Z",
38
+ "note": "<p>Account used for bot testing; nothing to see here.</p><p><span class=\"h-card\"><a href=\"https://i.write.codethat.sucks/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span><br /><span class=\"h-card\"><a href=\"https://botsin.space/@benoitmandelbot\" class=\"u-url mention\">@<span>benoitmandelbot</span></a></span></p>",
39
+ "url": "https://botsin.space/@testingtesting123",
40
+ "avatar": "https://files.botsin.space/accounts/avatars/000/022/411/original/a701d93a6a1d0497.gif",
41
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/022/411/static/a701d93a6a1d0497.png",
42
+ "header": "https://botsin.space/headers/original/missing.png",
43
+ "header_static": "https://botsin.space/headers/original/missing.png",
44
+ "followers_count": 2,
45
+ "following_count": 3,
46
+ "statuses_count": 4,
47
+ "last_status_at": null,
48
+ "noindex": true,
49
+ "emojis": [],
50
+ "roles": [],
51
+ "fields": []
52
+ },
53
+ "media_attachments": [
54
+ {
55
+ "id": "342848",
56
+ "type": "image",
57
+ "url": "https://files.botsin.space/media_attachments/files/000/342/848/original/10b11b4822029b13.png",
58
+ "preview_url": "https://files.botsin.space/media_attachments/files/000/342/848/small/10b11b4822029b13.png",
59
+ "remote_url": null,
60
+ "preview_remote_url": null,
61
+ "text_url": "https://botsin.space/media/y_5mgNa2Yzv70_k8H1M",
62
+ "meta": {
63
+ "original": {
64
+ "width": 800,
65
+ "height": 600,
66
+ "size": "800x600",
67
+ "aspect": 1.3333333333333333
68
+ },
69
+ "small": {
70
+ "width": 400,
71
+ "height": 300,
72
+ "size": "400x300",
73
+ "aspect": 1.3333333333333333
74
+ }
75
+ },
76
+ "description": null,
77
+ "blurhash": null
78
+ }
79
+ ],
80
+ "mentions": [],
81
+ "tags": [],
82
+ "emojis": [],
83
+ "card": null,
84
+ "poll": null
85
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "id": "99379819182770281",
3
+ "created_at": "2018-01-20T02:34:57.994Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": "en",
10
+ "uri": "https://botsin.space/users/testingtesting123/statuses/99379819182770281",
11
+ "url": "https://botsin.space/@testingtesting123/99379819182770281",
12
+ "replies_count": 0,
13
+ "reblogs_count": 0,
14
+ "favourites_count": 0,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "pinned": false,
21
+ "content": "<p>Test post.</p>",
22
+ "filtered": [],
23
+ "reblog": null,
24
+ "application": {
25
+ "name": "Web",
26
+ "website": null
27
+ },
28
+ "account": {
29
+ "id": "22411",
30
+ "username": "testingtesting123",
31
+ "acct": "testingtesting123",
32
+ "display_name": "scratchmonkey_15310",
33
+ "locked": false,
34
+ "bot": false,
35
+ "discoverable": null,
36
+ "group": false,
37
+ "created_at": "2018-01-20T00:00:00.000Z",
38
+ "note": "<p>Account used for bot testing; nothing to see here.</p><p><span class=\"h-card\"><a href=\"https://i.write.codethat.sucks/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span><br /><span class=\"h-card\"><a href=\"https://botsin.space/@benoitmandelbot\" class=\"u-url mention\">@<span>benoitmandelbot</span></a></span></p>",
39
+ "url": "https://botsin.space/@testingtesting123",
40
+ "avatar": "https://files.botsin.space/accounts/avatars/000/022/411/original/a701d93a6a1d0497.gif",
41
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/022/411/static/a701d93a6a1d0497.png",
42
+ "header": "https://botsin.space/headers/original/missing.png",
43
+ "header_static": "https://botsin.space/headers/original/missing.png",
44
+ "followers_count": 2,
45
+ "following_count": 3,
46
+ "statuses_count": 4,
47
+ "last_status_at": null,
48
+ "noindex": true,
49
+ "emojis": [],
50
+ "roles": [],
51
+ "fields": []
52
+ },
53
+ "media_attachments": [],
54
+ "mentions": [],
55
+ "tags": [],
56
+ "emojis": [],
57
+ "card": null,
58
+ "poll": null
59
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "id": "110368828441242232",
3
+ "created_at": "2023-05-14T20:04:32.266Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": "en",
10
+ "uri": "https://botsin.space/users/benoitmandelbot/statuses/110368828441242232",
11
+ "url": "https://botsin.space/@benoitmandelbot/110368828441242232",
12
+ "replies_count": 0,
13
+ "reblogs_count": 4,
14
+ "favourites_count": 1,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "content": "<p>position: 0.37198394822181424 + -0.2749605136605625i<br />pixel width: 8.466334441475639e-07</p>",
21
+ "filtered": [],
22
+ "reblog": null,
23
+ "application": {
24
+ "name": "BenoitMandelbot",
25
+ "website": null
26
+ },
27
+ "account": {
28
+ "id": "19191",
29
+ "username": "benoitmandelbot",
30
+ "acct": "benoitmandelbot",
31
+ "display_name": "Benoit Mandelbot",
32
+ "locked": false,
33
+ "bot": true,
34
+ "discoverable": false,
35
+ "group": false,
36
+ "created_at": "2017-12-02T00:00:00.000Z",
37
+ "note": "<p>z = z^2 + c</p><p><span class=\"h-card\"><a href=\"https://freeradical.zone/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span></p><p>(RIP mastodon.technology)</p>",
38
+ "url": "https://botsin.space/@benoitmandelbot",
39
+ "avatar": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
40
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
41
+ "header": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
42
+ "header_static": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
43
+ "followers_count": 1629,
44
+ "following_count": 2,
45
+ "statuses_count": 7769,
46
+ "last_status_at": "2023-05-15",
47
+ "noindex": false,
48
+ "emojis": [],
49
+ "roles": [],
50
+ "fields": [
51
+ {
52
+ "name": "Bot:",
53
+ "value": "Yes",
54
+ "verified_at": null
55
+ },
56
+ {
57
+ "name": "Source Code:",
58
+ "value": "<a href=\"https://gitlab.com/suetanvil/benoit\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://</span><span class=\"\">gitlab.com/suetanvil/benoit</span><span class=\"invisible\"></span></a>",
59
+ "verified_at": null
60
+ }
61
+ ]
62
+ },
63
+ "media_attachments": [
64
+ {
65
+ "id": "110368828416335701",
66
+ "type": "image",
67
+ "url": "https://files.botsin.space/media_attachments/files/110/368/828/416/335/701/original/fd6122effaa1e0d6.jpg",
68
+ "preview_url": "https://files.botsin.space/media_attachments/files/110/368/828/416/335/701/small/fd6122effaa1e0d6.jpg",
69
+ "remote_url": null,
70
+ "preview_remote_url": null,
71
+ "text_url": null,
72
+ "meta": {
73
+ "original": {
74
+ "width": 800,
75
+ "height": 600,
76
+ "size": "800x600",
77
+ "aspect": 1.3333333333333333
78
+ },
79
+ "small": {
80
+ "width": 554,
81
+ "height": 416,
82
+ "size": "554x416",
83
+ "aspect": 1.3317307692307692
84
+ }
85
+ },
86
+ "description": null,
87
+ "blurhash": "UiD]uo~p-mxVR3McM_fm9dE4WXt7b_XTWoV@"
88
+ }
89
+ ],
90
+ "mentions": [],
91
+ "tags": [],
92
+ "emojis": [],
93
+ "card": null,
94
+ "poll": null
95
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "id": "110363876545286788",
3
+ "created_at": "2023-05-13T23:05:12.332Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": "en",
10
+ "uri": "https://botsin.space/users/benoitmandelbot/statuses/110363876545286788",
11
+ "url": "https://botsin.space/@benoitmandelbot/110363876545286788",
12
+ "replies_count": 0,
13
+ "reblogs_count": 2,
14
+ "favourites_count": 2,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "content": "<p>position: -0.6338357168355337 + -0.3807717941474766i<br />pixel width: 1.8317975241963662e-07</p>",
21
+ "filtered": [],
22
+ "reblog": null,
23
+ "application": {
24
+ "name": "BenoitMandelbot",
25
+ "website": null
26
+ },
27
+ "account": {
28
+ "id": "19191",
29
+ "username": "benoitmandelbot",
30
+ "acct": "benoitmandelbot",
31
+ "display_name": "Benoit Mandelbot",
32
+ "locked": false,
33
+ "bot": true,
34
+ "discoverable": false,
35
+ "group": false,
36
+ "created_at": "2017-12-02T00:00:00.000Z",
37
+ "note": "<p>z = z^2 + c</p><p><span class=\"h-card\"><a href=\"https://freeradical.zone/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span></p><p>(RIP mastodon.technology)</p>",
38
+ "url": "https://botsin.space/@benoitmandelbot",
39
+ "avatar": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
40
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/019/191/original/3c74f43e1f614116.png",
41
+ "header": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
42
+ "header_static": "https://files.botsin.space/accounts/headers/000/019/191/original/28ea9d75f5645021.png",
43
+ "followers_count": 1629,
44
+ "following_count": 2,
45
+ "statuses_count": 7769,
46
+ "last_status_at": "2023-05-15",
47
+ "noindex": false,
48
+ "emojis": [],
49
+ "roles": [],
50
+ "fields": [
51
+ {
52
+ "name": "Bot:",
53
+ "value": "Yes",
54
+ "verified_at": null
55
+ },
56
+ {
57
+ "name": "Source Code:",
58
+ "value": "<a href=\"https://gitlab.com/suetanvil/benoit\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://</span><span class=\"\">gitlab.com/suetanvil/benoit</span><span class=\"invisible\"></span></a>",
59
+ "verified_at": null
60
+ }
61
+ ]
62
+ },
63
+ "media_attachments": [
64
+ {
65
+ "id": "110363876480763218",
66
+ "type": "image",
67
+ "url": "https://files.botsin.space/media_attachments/files/110/363/876/480/763/218/original/cc53cd334060df43.jpg",
68
+ "preview_url": "https://files.botsin.space/media_attachments/files/110/363/876/480/763/218/small/cc53cd334060df43.jpg",
69
+ "remote_url": null,
70
+ "preview_remote_url": null,
71
+ "text_url": null,
72
+ "meta": {
73
+ "original": {
74
+ "width": 800,
75
+ "height": 600,
76
+ "size": "800x600",
77
+ "aspect": 1.3333333333333333
78
+ },
79
+ "small": {
80
+ "width": 554,
81
+ "height": 416,
82
+ "size": "554x416",
83
+ "aspect": 1.3317307692307692
84
+ }
85
+ },
86
+ "description": null,
87
+ "blurhash": "U9Gl9l}~%$4^9GtS?AIU9FVWtT~R9+M}IwIV"
88
+ }
89
+ ],
90
+ "mentions": [],
91
+ "tags": [],
92
+ "emojis": [],
93
+ "card": null,
94
+ "poll": null
95
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "id": "110401054511663014",
3
+ "created_at": "2023-05-20T12:40:03.117Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": "en",
10
+ "uri": "https://botsin.space/users/testingtesting123/statuses/110401054511663014",
11
+ "url": "https://botsin.space/@testingtesting123/110401054511663014",
12
+ "replies_count": 0,
13
+ "reblogs_count": 0,
14
+ "favourites_count": 0,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "pinned": false,
21
+ "content": "<p>Here are some URLs:</p><p><a href=\"https://ruby-doc.org/core-3.0.1/Object.html#method-i-object_id\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">ruby-doc.org/core-3.0.1/Object</span><span class=\"invisible\">.html#method-i-object_id</span></a></p><p><a href=\"https://docs.joinmastodon.org/entities/MediaAttachment/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">docs.joinmastodon.org/entities</span><span class=\"invisible\">/MediaAttachment/</span></a></p><p><a href=\"https://docs.joinmastodon.org/entities/StatusEdit/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">docs.joinmastodon.org/entities</span><span class=\"invisible\">/StatusEdit/</span></a></p>",
22
+ "filtered": [],
23
+ "reblog": null,
24
+ "application": {
25
+ "name": "Web",
26
+ "website": null
27
+ },
28
+ "account": {
29
+ "id": "22411",
30
+ "username": "testingtesting123",
31
+ "acct": "testingtesting123",
32
+ "display_name": "scratchmonkey_15310",
33
+ "locked": false,
34
+ "bot": false,
35
+ "discoverable": null,
36
+ "group": false,
37
+ "created_at": "2018-01-20T00:00:00.000Z",
38
+ "note": "<p>Account used for bot testing; nothing to see here.</p><p><span class=\"h-card\"><a href=\"https://i.write.codethat.sucks/@suetanvil\" class=\"u-url mention\">@<span>suetanvil</span></a></span><br /><span class=\"h-card\"><a href=\"https://botsin.space/@benoitmandelbot\" class=\"u-url mention\">@<span>benoitmandelbot</span></a></span></p>",
39
+ "url": "https://botsin.space/@testingtesting123",
40
+ "avatar": "https://files.botsin.space/accounts/avatars/000/022/411/original/a701d93a6a1d0497.gif",
41
+ "avatar_static": "https://files.botsin.space/accounts/avatars/000/022/411/static/a701d93a6a1d0497.png",
42
+ "header": "https://botsin.space/headers/original/missing.png",
43
+ "header_static": "https://botsin.space/headers/original/missing.png",
44
+ "followers_count": 2,
45
+ "following_count": 3,
46
+ "statuses_count": 6,
47
+ "last_status_at": "2023-05-20",
48
+ "noindex": true,
49
+ "emojis": [],
50
+ "roles": [],
51
+ "fields": []
52
+ },
53
+ "media_attachments": [],
54
+ "mentions": [],
55
+ "tags": [],
56
+ "emojis": [],
57
+ "card": {
58
+ "url": "https://ruby-doc.org/core-3.0.1/Object.html#method-i-object_id",
59
+ "title": "Class: Object (Ruby 3.0.1) ",
60
+ "description": " Class : Object - Ruby 3.0.1 ",
61
+ "type": "link",
62
+ "author_name": "",
63
+ "author_url": "",
64
+ "provider_name": "",
65
+ "provider_url": "",
66
+ "html": "",
67
+ "width": 0,
68
+ "height": 0,
69
+ "image": null,
70
+ "embed_url": "",
71
+ "blurhash": null
72
+ },
73
+ "poll": null
74
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "id": "110372692380354797",
3
+ "created_at": "2023-05-15T12:27:06.000Z",
4
+ "in_reply_to_id": null,
5
+ "in_reply_to_account_id": null,
6
+ "sensitive": false,
7
+ "spoiler_text": "",
8
+ "visibility": "public",
9
+ "language": null,
10
+ "uri": "https://freeradical.zone/users/suetanvil/statuses/110372692069968108/activity",
11
+ "url": null,
12
+ "replies_count": 0,
13
+ "reblogs_count": 0,
14
+ "favourites_count": 0,
15
+ "edited_at": null,
16
+ "favourited": false,
17
+ "reblogged": false,
18
+ "muted": false,
19
+ "bookmarked": false,
20
+ "content": "",
21
+ "filtered": [],
22
+ "reblog": {
23
+ "id": "110372626295518937",
24
+ "created_at": "2023-05-15T12:10:22.000Z",
25
+ "in_reply_to_id": null,
26
+ "in_reply_to_account_id": null,
27
+ "sensitive": false,
28
+ "spoiler_text": "",
29
+ "visibility": "public",
30
+ "language": "en",
31
+ "uri": "https://todon.eu/users/wheeltod/statuses/110372626296974342",
32
+ "url": "https://todon.eu/@wheeltod/110372626296974342",
33
+ "replies_count": 1,
34
+ "reblogs_count": 13,
35
+ "favourites_count": 0,
36
+ "edited_at": null,
37
+ "favourited": false,
38
+ "reblogged": false,
39
+ "muted": false,
40
+ "bookmarked": false,
41
+ "content": "<p>Sure Charlie got himself a Chocolate Factory, but his grandparents got to stay in bed for 20 years so ask yourself who were the real winners</p>",
42
+ "filtered": [],
43
+ "reblog": null,
44
+ "account": {
45
+ "id": "109337956481532585",
46
+ "username": "wheeltod",
47
+ "acct": "wheeltod@todon.eu",
48
+ "display_name": "Frank Whitehouse",
49
+ "locked": false,
50
+ "bot": false,
51
+ "discoverable": true,
52
+ "group": false,
53
+ "created_at": "2022-11-12T00:00:00.000Z",
54
+ "note": "<p><a href=\"https://justmytoots.com/wheeltod@todon.eu\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">justmytoots.com/wheeltod@todon</span><span class=\"invisible\">.eu</span></a></p>",
55
+ "url": "https://todon.eu/@wheeltod",
56
+ "avatar": "https://files.botsin.space/cache/accounts/avatars/109/337/956/481/532/585/original/707a555027593589.png",
57
+ "avatar_static": "https://files.botsin.space/cache/accounts/avatars/109/337/956/481/532/585/original/707a555027593589.png",
58
+ "header": "https://files.botsin.space/cache/accounts/headers/109/337/956/481/532/585/original/46befa699114e57e.png",
59
+ "header_static": "https://files.botsin.space/cache/accounts/headers/109/337/956/481/532/585/original/46befa699114e57e.png",
60
+ "followers_count": 874,
61
+ "following_count": 178,
62
+ "statuses_count": 648,
63
+ "last_status_at": "2023-05-18",
64
+ "emojis": [],
65
+ "fields": [
66
+ {
67
+ "name": "Mastodon",
68
+ "value": "<a href=\"https://justmytoots.com/wheeltod@todon.eu\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">justmytoots.com/wheeltod@todon</span><span class=\"invisible\">.eu</span></a>",
69
+ "verified_at": null
70
+ },
71
+ {
72
+ "name": "Recent Other Place",
73
+ "value": "<a href=\"https://t.co/521gCIUPxP\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">t.co/521gCIUPxP</span><span class=\"invisible\"></span></a>",
74
+ "verified_at": null
75
+ },
76
+ {
77
+ "name": "Better days",
78
+ "value": "<a href=\"https://twitter.com/WheelTod/timelines/824334222211084288\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">twitter.com/WheelTod/timelines</span><span class=\"invisible\">/824334222211084288</span></a>",
79
+ "verified_at": null
80
+ }
81
+ ]
82
+ },
83
+ "media_attachments": [],
84
+ "mentions": [],
85
+ "tags": [],
86
+ "emojis": [],
87
+ "card": null,
88
+ "poll": null
89
+ },
90
+ "account": {
91
+ "id": "109135581462600382",
92
+ "username": "suetanvil",
93
+ "acct": "suetanvil@freeradical.zone",
94
+ "display_name": "Chris [list of sweaty emoji]",
95
+ "locked": false,
96
+ "bot": false,
97
+ "discoverable": true,
98
+ "group": false,
99
+ "created_at": "2022-10-07T00:00:00.000Z",
100
+ "note": "<p>Lover, dreamer, codewarriorpoet.</p><p>Joined 2017.</p><p>White, cishet, able-bodied male (aka Easy Mode).</p><p>Tech nerd (NOT tech bro) about as old as Unix. I like reading about and making cool (non-capitalistic) things with computers.</p><p>Canadian, leftish politics, opposed to all forms of bigotry (e.g. BLM, trans rights, your gender is valid).</p><p>Christian (spiritually, not politically) but rarely discussed here; I CW religion.</p><p>This account is a public place; I usually don't get very personal here.</p><p><a href=\"https://freeradical.zone/tags/nobot\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>nobot</span></a></p>",
101
+ "url": "https://freeradical.zone/@suetanvil",
102
+ "avatar": "https://files.botsin.space/cache/accounts/avatars/109/135/581/462/600/382/original/c3c4fd907e03deb0.jpeg",
103
+ "avatar_static": "https://files.botsin.space/cache/accounts/avatars/109/135/581/462/600/382/original/c3c4fd907e03deb0.jpeg",
104
+ "header": "https://files.botsin.space/cache/accounts/headers/109/135/581/462/600/382/original/1af25b0fa4890019.png",
105
+ "header_static": "https://files.botsin.space/cache/accounts/headers/109/135/581/462/600/382/original/1af25b0fa4890019.png",
106
+ "followers_count": 554,
107
+ "following_count": 923,
108
+ "statuses_count": 3974,
109
+ "last_status_at": "2023-05-21",
110
+ "emojis": [],
111
+ "fields": [
112
+ {
113
+ "name": "Pronouns",
114
+ "value": "He/Him",
115
+ "verified_at": null
116
+ },
117
+ {
118
+ "name": "Nerdery",
119
+ "value": "Yes",
120
+ "verified_at": null
121
+ },
122
+ {
123
+ "name": "Employer's opinions?",
124
+ "value": "NO!!!!",
125
+ "verified_at": null
126
+ },
127
+ {
128
+ "name": "Formerly",
129
+ "value": "@suetanvil@mastodon.technology",
130
+ "verified_at": null
131
+ }
132
+ ]
133
+ },
134
+ "media_attachments": [],
135
+ "mentions": [],
136
+ "tags": [],
137
+ "emojis": [],
138
+ "card": null,
139
+ "poll": null
140
+ }