diff --git a/example.json b/example.json new file mode 100644 index 0000000..c0e014f --- /dev/null +++ b/example.json @@ -0,0 +1,992 @@ +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "ostatus": "http://ostatus.org#", + "atomUri": "ostatus:atomUri", + "inReplyToAtomUri": "ostatus:inReplyToAtomUri", + "conversation": "ostatus:conversation", + "sensitive": "as:sensitive", + "toot": "http://joinmastodon.org/ns#", + "votersCount": "toot:votersCount", + "blurhash": "toot:blurhash", + "focalPoint": { + "@container": "@list", + "@id": "toot:focalPoint" + } + } + ], + "id": "https://social.matsuuratomoya.com/users/tomoya/outbox?page=true", + "type": "OrderedCollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/outbox?max_id=112020776000409347\u0026page=true", + "prev": "https://social.matsuuratomoya.com/users/tomoya/outbox?min_id=112035176675372651\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/outbox", + "orderedItems": [ + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-04T02:58:48Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-04T02:58:48Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112035176675372651", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-04:objectId=9203935:objectType=Conversation", + "content": "\u003cp\u003eどうしてもフェミニズムにおけるReproductionというワードの使われ方とのマッチングが気になってきてるのもあり、「再生産」より「繁殖」の方が「歴史の中を生き延びる」という意味合いが付加され、メディアと歴史を論じる上では適切なように思える\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eどうしてもフェミニズムにおけるReproductionというワードの使われ方とのマッチングが気になってきてるのもあり、「再生産」より「繁殖」の方が「歴史の中を生き延びる」という意味合いが付加され、メディアと歴史を論じる上では適切なように思える\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035176675372651/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-04T02:54:58Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-04T02:54:58Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112035161622714057", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-04:objectId=9203934:objectType=Conversation", + "content": "\u003cp\u003eSound Reproduction Technologyを「音響繁殖技術」と訳すのはどうだろうか\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eSound Reproduction Technologyを「音響繁殖技術」と訳すのはどうだろうか\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112035161622714057/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-03T13:32:04Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-03T13:32:04Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112032004465576083", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-03:objectId=9203770:objectType=Conversation", + "content": "\u003cp\u003eというか、諸々Social Construction of Technologyについておさらいした状態で「聞こえくる過去」を読むと、かなーり音響メディアにおけるSCOTの教科書的書き方だなと思う(まあ、読みづらいんだけど…)。もちろん、当時の類似書の中では資料の掘り下げ度合いがすごいんだけど、書き振り的にはキャロリン・マーヴィン「古いメディアが新しかった時」がかなり下敷きになってる印象を持った(実際何度も引用されてる)。\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eというか、諸々Social Construction of Technologyについておさらいした状態で「聞こえくる過去」を読むと、かなーり音響メディアにおけるSCOTの教科書的書き方だなと思う(まあ、読みづらいんだけど…)。もちろん、当時の類似書の中では資料の掘り下げ度合いがすごいんだけど、書き振り的にはキャロリン・マーヴィン「古いメディアが新しかった時」がかなり下敷きになってる印象を持った(実際何度も引用されてる)。\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112032004465576083/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-03T13:28:20Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-03T13:28:20Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112031989790811369", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-03:objectId=9203769:objectType=Conversation", + "content": "\u003cp\u003e1800年代の「発明家」の生態が実際どんなもんだったのかまだはっきり分かってないなと「聞こえくる過去」読み返してて思う。ベルとエジソンもそうだが、自分にとってはバベッジもそうだな\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e1800年代の「発明家」の生態が実際どんなもんだったのかまだはっきり分かってないなと「聞こえくる過去」読み返してて思う。ベルとエジソンもそうだが、自分にとってはバベッジもそうだな\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112031989790811369/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T15:05:47Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T15:05:47Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026710689766143", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203376:objectType=Conversation", + "content": "\u003cp\u003e障害の医学モデルと社会モデルの話は比較的浸透してきたほうだと思うけど、手話に関しては文化言語モデルというポストコロニアルに近い視点が導入されてるという話が、実際私も知らなかったのでもっと共有されていいと思ってる(「ろう者学とソーシャルワーク教育」p29、2022年、高山亨太、生活書院)\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e障害の医学モデルと社会モデルの話は比較的浸透してきたほうだと思うけど、手話に関しては文化言語モデルというポストコロニアルに近い視点が導入されてるという話が、実際私も知らなかったのでもっと共有されていいと思ってる(「ろう者学とソーシャルワーク教育」p29、2022年、高山亨太、生活書院)\u003c/p\u003e" + }, + "attachment": [ + { + "type": "Document", + "mediaType": "image/jpeg", + "url": "https://social.matsuuratomoya.com/system/media_attachments/files/112/026/698/815/182/717/original/a0239420f589187a.jpg", + "name": null, + "blurhash": "U9HLF;InM{Rj~qofWCoJWXjsayoexut6ayoL", + "width": 1247, + "height": 1663 + } + ], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026710689766143/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T14:57:39Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T14:57:39Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026678701355502", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203368:objectType=Conversation", + "content": "\u003cp\u003e\u0026quot;なぜ手話歌にモヤモヤする? 手話文化の前提を知るため、ろう者に聞いた\u0026quot;\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://www.nippon-foundation.or.jp/journal/2023/97273/disability\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003enippon-foundation.or.jp/journa\u003c/span\u003e\u003cspan class=\"invisible\"\u003el/2023/97273/disability\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e\u0026quot;なぜ手話歌にモヤモヤする? 手話文化の前提を知るため、ろう者に聞いた\u0026quot;\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://www.nippon-foundation.or.jp/journal/2023/97273/disability\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003enippon-foundation.or.jp/journa\u003c/span\u003e\u003cspan class=\"invisible\"\u003el/2023/97273/disability\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026678701355502/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T14:54:33Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T14:54:33Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026666488539627", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203366:objectType=Conversation", + "content": "\u003cp\u003eMVの話、手話の実態が理解されてないのに加えて、「聞こえてない=聴者の音楽文化に全く関われてない」という思い込みも同じくらい原因の一端だと思う。\u003cbr /\u003e口話主義を引き継いだ音楽の授業とかのせいで音楽自体にあまりいいイメージを持てない当事者も実際いる一方、筑波技大で授業したときにカラオケ行ったりドームにライブ見に行ったりしてるという学生の話を一人や二人ではなく聞いて驚いたのが去年の11月。\u003cbr /\u003e世代によって幼児期からの人工内耳の装着率が大幅に変わってたり、補聴器/人工内耳とスマホの連携がここ数年で強くなってるのもあって、ろうのコミュニティの中でも実態が把握しきれてないのでは、という話もした。アカデミアのやるべきこともまだまだたくさんあるので頑張りたい\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://ccbt.rekibun.or.jp/research-notes/musical-device-project-01#i6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eccbt.rekibun.or.jp/research-no\u003c/span\u003e\u003cspan class=\"invisible\"\u003etes/musical-device-project-01#i6\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eMVの話、手話の実態が理解されてないのに加えて、「聞こえてない=聴者の音楽文化に全く関われてない」という思い込みも同じくらい原因の一端だと思う。\u003cbr /\u003e口話主義を引き継いだ音楽の授業とかのせいで音楽自体にあまりいいイメージを持てない当事者も実際いる一方、筑波技大で授業したときにカラオケ行ったりドームにライブ見に行ったりしてるという学生の話を一人や二人ではなく聞いて驚いたのが去年の11月。\u003cbr /\u003e世代によって幼児期からの人工内耳の装着率が大幅に変わってたり、補聴器/人工内耳とスマホの連携がここ数年で強くなってるのもあって、ろうのコミュニティの中でも実態が把握しきれてないのでは、という話もした。アカデミアのやるべきこともまだまだたくさんあるので頑張りたい\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://ccbt.rekibun.or.jp/research-notes/musical-device-project-01#i6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eccbt.rekibun.or.jp/research-no\u003c/span\u003e\u003cspan class=\"invisible\"\u003etes/musical-device-project-01#i6\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e" + }, + "updated": "2024-03-02T15:13:02Z", + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026666488539627/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T14:34:57Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T14:34:57Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026589439179612", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203364:objectType=Conversation", + "content": "\u003cp\u003e明日ちょうど、CCBTと東京文化会館とで1年ちょっと取り組んできたろうの子供向けの音楽WSの本番なので、例のMVのニュース見て非常に難しい気持ちになっとる。\u003cbr /\u003eあの企画内容でそもそも手話を日常的に使ってる人に話を聞きに行ったりしなかったんだろうか・・・。\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e明日ちょうど、CCBTと東京文化会館とで1年ちょっと取り組んできたろうの子供向けの音楽WSの本番なので、例のMVのニュース見て非常に難しい気持ちになっとる。\u003cbr /\u003eあの企画内容でそもそも手話を日常的に使ってる人に話を聞きに行ったりしなかったんだろうか・・・。\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026589439179612/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T13:47:16Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087", + "type": "Note", + "summary": null, + "inReplyTo": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398", + "published": "2024-03-02T13:47:16Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026401940486087", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087", + "inReplyToAtomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398", + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203337:objectType=Conversation", + "content": "\u003cp\u003eいまメディア芸術関わる都の文化事業は生活文化スポーツ局(アーツカウンシル含むいろいろ)、政策企画局(スシテックとか)と今回みたいにたまに産業労働局が出てきたり縦割りの悪さがでまくってるな\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eいまメディア芸術関わる都の文化事業は生活文化スポーツ局(アーツカウンシル含むいろいろ)、政策企画局(スシテックとか)と今回みたいにたまに産業労働局が出てきたり縦割りの悪さがでまくってるな\u003c/p\u003e" + }, + "updated": "2024-03-02T13:48:04Z", + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T13:40:34Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398", + "type": "Note", + "summary": null, + "inReplyTo": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839", + "published": "2024-03-02T13:40:34Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026375614581398", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398", + "inReplyToAtomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839", + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203337:objectType=Conversation", + "content": "\u003cp\u003e産業労働局観光部振興課、か。\u003ca href=\"https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2024/02/02/11.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003emetro.tokyo.lg.jp/tosei/hodoha\u003c/span\u003e\u003cspan class=\"invisible\"\u003eppyo/press/2024/02/02/11.html\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003eつまり国でいうと経産省がクールジャパンやって叩かれてんのと同じ構図だ\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e産業労働局観光部振興課、か。\u003ca href=\"https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2024/02/02/11.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003emetro.tokyo.lg.jp/tosei/hodoha\u003c/span\u003e\u003cspan class=\"invisible\"\u003eppyo/press/2024/02/02/11.html\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003eつまり国でいうと経産省がクールジャパンやって叩かれてんのと同じ構図だ\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398/replies?min_id=112026401940486087\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398/replies", + "items": [ + "https://social.matsuuratomoya.com/users/tomoya/statuses/112026401940486087" + ] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T13:38:44Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T13:38:44Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026368400368839", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203337:objectType=Conversation", + "content": "\u003cp\u003e都庁のプロジェクションマッピングはどこの局が担当してんだろ、生活文化じゃなさそうだけど\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e都庁のプロジェクションマッピングはどこの局が担当してんだろ、生活文化じゃなさそうだけど\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839/replies?min_id=112026375614581398\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026368400368839/replies", + "items": [ + "https://social.matsuuratomoya.com/users/tomoya/statuses/112026375614581398" + ] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T13:18:28Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T13:18:28Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112026288668830337", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203331:objectType=Conversation", + "content": "\u003cp\u003eテスト終了(お目汚し失礼しました)画像クロスポストはbskyが1MBのサイズ制限があるのとpdsセルフホストしてるせいかサイズ小さくしてもInternal Server Errorになるので無理っぽい。やめやめ\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eテスト終了(お目汚し失礼しました)画像クロスポストはbskyが1MBのサイズ制限があるのとpdsセルフホストしてるせいかサイズ小さくしてもInternal Server Errorになるので無理っぽい。やめやめ\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112026288668830337/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T06:28:25Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T06:28:25Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112024676298548006", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203212:objectType=Conversation", + "content": "\u003cp\u003eまたelasticsearchの導入に失敗した\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eまたelasticsearchの導入に失敗した\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112024676298548006/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-02T00:28:01Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-02T00:28:01Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112023259170241809", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-02:objectId=9203051:objectType=Conversation", + "content": "\u003cp\u003eうーん 70点\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eうーん 70点\u003c/p\u003e" + }, + "attachment": [ + { + "type": "Document", + "mediaType": "image/jpeg", + "url": "https://social.matsuuratomoya.com/system/media_attachments/files/112/023/258/200/533/724/original/266f74835914a49d.jpg", + "name": null, + "blurhash": "UkI;-S~qXT%M%MxZMxRjbwkCjEaeniWBbIof", + "width": 1663, + "height": 1247 + } + ], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112023259170241809/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T22:12:09Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T22:12:09Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112022724914218912", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9203016:objectType=Conversation", + "content": "\u003cp\u003e夜中の地震とかでやたら早起きしてしまった\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003e夜中の地震とかでやたら早起きしてしまった\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112022724914218912/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T14:32:50Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T14:32:50Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112020918783971458", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9202915:objectType=Conversation", + "content": "\u003cp\u003eくしゃみが止まらなくなってしまった\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eくしゃみが止まらなくなってしまった\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020918783971458/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T14:16:03Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T14:16:03Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112020852824324628", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9202903:objectType=Conversation", + "content": "\u003cp\u003eおっ、できた。これで当分運用すっかな\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003eおっ、できた。これで当分運用すっかな\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020852824324628/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T14:08:20Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T14:08:20Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112020822478280673", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9202900:objectType=Conversation", + "content": "\u003cp\u003ebsky自動転送テスト中です4\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003ebsky自動転送テスト中です4\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020822478280673/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T14:03:53Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T14:03:53Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112020804954913172", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9202896:objectType=Conversation", + "content": "\u003cp\u003ebsky自動転送テスト中です3\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003ebsky自動転送テスト中です3\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020804954913172/replies", + "items": [] + } + } + } + }, + { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347/activity", + "type": "Create", + "actor": "https://social.matsuuratomoya.com/users/tomoya", + "published": "2024-03-01T13:56:31Z", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "object": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347", + "type": "Note", + "summary": null, + "inReplyTo": null, + "published": "2024-03-01T13:56:31Z", + "url": "https://social.matsuuratomoya.com/@tomoya/112020776000409347", + "attributedTo": "https://social.matsuuratomoya.com/users/tomoya", + "to": [ + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc": [ + "https://social.matsuuratomoya.com/users/tomoya/followers" + ], + "sensitive": false, + "atomUri": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347", + "inReplyToAtomUri": null, + "conversation": "tag:social.matsuuratomoya.com,2024-03-01:objectId=9202893:objectType=Conversation", + "content": "\u003cp\u003ebsky自動転送テスト中です2\u003c/p\u003e", + "contentMap": { + "ja": "\u003cp\u003ebsky自動転送テスト中です2\u003c/p\u003e" + }, + "attachment": [], + "tag": [], + "replies": { + "id": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347/replies", + "type": "Collection", + "first": { + "type": "CollectionPage", + "next": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347/replies?only_other_accounts=true\u0026page=true", + "partOf": "https://social.matsuuratomoya.com/users/tomoya/statuses/112020776000409347/replies", + "items": [] + } + } + } + } + ] +} \ No newline at end of file diff --git a/main.js b/main.js index 9d12ae3..a334775 100644 --- a/main.js +++ b/main.js @@ -35,15 +35,74 @@ function saveLastProcessedPostId() { console.error("Error saving last processed post ID:", error); } } +async function getImages(item) { + const responses = item.object.attachment + .filter(attachment => attachment.mediaType.includes("image")); + const infos = responses.map(attachment => { + return { + url: attachment.url, + width: attachment.width, + height: attachment.height + } + }); + const respromise = await Promise.all(responses.map(attachment => + axios.get( + attachment.url, + { + responseType: "arraybuffer" + } + ) + )); -async function postToBluesky(text) { + return respromise.map((buf, index) => { + return { + blob: new Blob( + [buf.data], + { + type: buf.headers["content-type"] + } + ), + url: infos[index].url, + width: infos[index].width, + height: infos[index].height + } + }) +} + + +async function postToBluesky(text, images) { await agent.login({ identifier: process.env.BLUESKY_HANDLE, password: process.env.BLUESKY_PASSWORD, }); - const richText = new RichText({ text }); + // let imgdatas = await Promise.all(images.map(async img => { + // const buf = await img.blob.arrayBuffer(); + // console.log(`detected img: ${buf}, ${buf}`); + // const dataArray = new Uint8Array(buf); + // const data = await agent.uploadBlob( + // dataArray, + // { + // // 画像の形式を指定 ('image/jpeg' 等の MIME タイプ) + // encoding: img.type, + // } + // ); + // return { + // alt: "", + // image: data.data.blob, + // aspectRatio: { + // width: img.width, + // height: img.height + // } + // }; + // })); + let completetext = text; + if (!images.empty()) { + completetext = text + " " + images.map(img => img.url).join(" ") + } + const richText = new RichText({ completetext }); await richText.detectFacets(agent); + await agent.post({ text: richText.text, facets: richText.facets, @@ -53,31 +112,42 @@ async function postToBluesky(text) { function removeHtmlTags(input) { return input.replace(/<[^>]*>/g, ""); } - +function convertQuote(input) { + return input.replace(/"/g, '"'); +} +function isReplyToMyself(item) { + const uri = item.object.inReplyTo; + if (uri === null) { + return false; + } + return uri.includes("${mastodonInstance}/users/${mastodonUser}"); +} // Function to periodically fetch new Mastodon posts async function fetchNewPosts() { const response = await axios.get(`${mastodonInstance}/users/${mastodonUser}/outbox?page=true`); const reversed = response.data.orderedItems.filter(item => item.object.type === 'Note') - .filter(item => item.object.inReplyTo === null) - .reverse(); + .filter(item => item.object.inReplyTo === null || isReplyToMyself(item)) + .reverse(); let newTimestampId = 0; - - reversed.forEach(item => { + + await Promise.all(reversed.map(async item => { const currentTimestampId = Date.parse(item.published); - if(currentTimestampId > newTimestampId) { + if (currentTimestampId > newTimestampId) { newTimestampId = currentTimestampId; } - if(currentTimestampId > lastProcessedPostId && lastProcessedPostId != 0) { - const text = removeHtmlTags(item.object.content); - postToBluesky(text); + if (currentTimestampId > lastProcessedPostId && lastProcessedPostId != 0) { + const text = removeHtmlTags(convertQuote(item.object.content)); + const images = await getImages(item); + postToBluesky(text, images); + console.log(`posted ${item.object.id}. ${newTimestampId}`); } - }) + })) - if(newTimestampId > 0) { + if (newTimestampId > 0) { lastProcessedPostId = newTimestampId; saveLastProcessedPostId(); } @@ -85,4 +155,4 @@ async function fetchNewPosts() { fetchNewPosts(); // Fetch new posts every 5 minutes (adjust as needed) -setInterval(fetchNewPosts, 2 * 60 * 1000); +setInterval(fetchNewPosts, 1 * 60 * 1000); diff --git a/test.js b/test.js new file mode 100644 index 0000000..9d4b4c5 --- /dev/null +++ b/test.js @@ -0,0 +1,73 @@ +require("dotenv").config(); +const fs = require("fs"); +const path = require("path"); +const { RichText, BskyAgent } = require("@atproto/api"); +const axios = require("axios"); + +const agent = new BskyAgent({ service: process.env.BLUESKY_ENDPOINT }); + + +async function getImages(item) { + const responses = item.object.attachment + .filter(attachment => attachment.mediaType.includes("image")); + const ratios = responses.map(attachment => { + return { + width: attachment.width, + height: attachment.height + } + }); + const respromise = await Promise.all(responses.map(attachment => + axios.get( + attachment.url, + { + responseType: "arraybuffer" + } + ) + )); + + return respromise.map((buf, index) => { + return { + blob: new Blob( + [buf.data], + { + type: buf.headers["content-type"] + } + ), + width: ratios[index].width, + height: ratios[index].height + } + }) +} + +const sampledata = JSON.parse(fs.readFileSync("example.json")); +const firstdata = sampledata.orderedItems[0]; + +agent.login({ + identifier: process.env.BLUESKY_HANDLE, + password: process.env.BLUESKY_PASSWORD, +}); +sampledata.orderedItems.forEach(async element => { + let images = await getImages(element); + + let imgdatas = await Promise.all(images.map(async img => { + const buf = await img.blob.arrayBuffer(); + const dataArray = new Uint8Array(buf); + console.log(`detected img: ${buf},size:${dataArray.byteLength} bytes`); + const data = await agent.uploadBlob( + dataArray, + { + // 画像の形式を指定 ('image/jpeg' 等の MIME タイプ) + encoding: img.type, + } + ); + console.log(`blob: ${data.data.blob}`); + return { + alt: "", + image: data.data.blob, + aspectRatio: { + width: img.width, + height: img.height + } + }; + })); +}); \ No newline at end of file