A native .NET C# library for developing Matrix clients.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
45 KiB

<Query Kind="Program">
<NuGetReference>Newtonsoft.Json</NuGetReference>
<Namespace>Newtonsoft.Json</Namespace>
<Namespace>Newtonsoft.Json.Bson</Namespace>
<Namespace>Newtonsoft.Json.Converters</Namespace>
<Namespace>Newtonsoft.Json.Linq</Namespace>
<Namespace>Newtonsoft.Json.Schema</Namespace>
<Namespace>Newtonsoft.Json.Serialization</Namespace>
</Query>
void Main()
{
string txt = "{\n \"account_data\": {\n \"events\": [\n {\n \"type\": \"m.direct\",\n \"content\": {\n \"@jay:post.hyrule.cc\": [\n \"!gGpGMWeoEhhMMaWdGT:post.hyrule.cc\"\n ]\n }\n },\n {\n \"type\": \"m.secret_storage.key.qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\",\n \"content\": {\n \"algorithm\": \"m.secret_storage.v1.aes-hmac-sha2\",\n \"passphrase\": {\n \"algorithm\": \"m.pbkdf2\",\n \"iterations\": 500000,\n \"salt\": \"yluvcuEslWDOoGjx0kdSpL6XypugFAlF\"\n },\n \"iv\": \"r44S20rG0vYHmS/1f9JE8A==\",\n \"mac\": \"0hJUMdPcwfFsUcAD3J4GrbTIbW+f52lbOmTxzEewvYE=\"\n }\n },\n {\n \"type\": \"m.secret_storage.default_key\",\n \"content\": {\n \"key\": \"qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\"\n }\n },\n {\n \"type\": \"m.cross_signing.master\",\n \"content\": {\n \"encrypted\": {\n \"qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\": {\n \"iv\": \"7ghVcptd3VhhfI4b/u17qg==\",\n \"ciphertext\": \"GuyMsI+roUkAfVxZPFOuKTWNuEAkb1CKQ8/VnYVUcJ25F4qHiG0xaaKP4kQ=\",\n \"mac\": \"KvqtwcOy73HCHYem1Oy7+KxUBvu+rw2+XnOPyzpozSc=\"\n }\n }\n }\n },\n {\n \"type\": \"m.cross_signing.self_signing\",\n \"content\": {\n \"encrypted\": {\n \"qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\": {\n \"iv\": \"qWmjLCQyLGp1Jg7fAMh5lw==\",\n \"ciphertext\": \"mKc9wkV93IhwDWjuB1hPfR5VRuQiFVe+pF+BDZBoEJxOjxRJwXTgs/sXbAc=\",\n \"mac\": \"jaoUtwZGVA1nPP2dySZP0YSDb+QkfeWVqG3BHiNuH60=\"\n }\n }\n }\n },\n {\n \"type\": \"m.cross_signing.user_signing\",\n \"content\": {\n \"encrypted\": {\n \"qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\": {\n \"iv\": \"lUCmom8R9UEJi6YGFgHESA==\",\n \"ciphertext\": \"vFIpV/NUohPu+G9iWtOi57jbRjWjhNBjS91rdkKolypaMuuOba9C8CjDD+s=\",\n \"mac\": \"5jdCXMplGXv2ufQKS6GEW+16mgaXGGKuThkPJ1qjubk=\"\n }\n }\n }\n },\n {\n \"type\": \"m.megolm_backup.v1\",\n \"content\": {\n \"encrypted\": {\n \"qAQTfRWJpnqBn92JsgmzImEZoEq5I81L\": {\n \"iv\": \"fiiaOiPwdC4UOgN0z8cujQ==\",\n \"ciphertext\": \"iT1CWwcGw6hRp343hFx00vIGyTDDSsvqCCVOEsU58N5WtQ3K7ilkIJ7xgrU=\",\n \"mac\": \"FgmKjel+mKt7gSlV0zqejfC9VMB+N5v02uv5v49ME74=\"\n }\n }\n }\n },\n {\n \"type\": \"im.vector.setting.breadcrumbs\",\n \"content\": {\n \"recent_rooms\": [\n \"!iEOZzedJhdJtozSkCK:post.hyrule.cc\",\n \"!OdeSTaDBtVXdpAAVue:post.hyrule.cc\",\n \"!gGpGMWeoEhhMMaWdGT:post.hyrule.cc\"\n ]\n }\n },\n {\n \"type\": \"im.vector.web.settings\",\n \"content\": {\n \"theme\": \"light\",\n \"useCompactLayout\": true\n }\n },\n {\n \"type\": \"m.push_rules\",\n \"content\": {\n \"global\": {\n \"underride\": [\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.call.invite\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"ring\"\n },\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.call\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"room_member_count\",\n \"is\": \"2\"\n },\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.message\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"default\"\n },\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.room_one_to_one\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"room_member_count\",\n \"is\": \"2\"\n },\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.encrypted\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"default\"\n },\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.encrypted_room_one_to_one\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.message\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.message\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.encrypted\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.encrypted\",\n \"default\": true,\n \"enabled\": true\n }\n ],\n \"sender\": [],\n \"room\": [],\n \"content\": [\n {\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"default\"\n },\n {\n \"set_tweak\": \"highlight\"\n }\n ],\n \"pattern\": \"claire\",\n \"rule_id\": \".m.rule.contains_user_name\",\n \"default\": true,\n \"enabled\": true\n }\n ],\n \"override\": [\n {\n \"conditions\": [],\n \"actions\": [\n \"dont_notify\"\n ],\n \"rule_id\": \".m.rule.master\",\n \"default\": true,\n \"enabled\": false\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"content.msgtype\",\n \"pattern\": \"m.notice\"\n }\n ],\n \"actions\": [\n \"dont_notify\"\n ],\n \"rule_id\": \".m.rule.suppress_notices\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.member\"\n },\n {\n \"kind\": \"event_match\",\n \"key\": \"content.membership\",\n \"pattern\": \"invite\"\n },\n {\n \"kind\": \"event_match\",\n \"key\": \"state_key\",\n \"pattern\": \"@claire:post.hyrule.cc\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"default\"\n },\n {\n \"set_tweak\": \"highlight\",\n \"value\": false\n }\n ],\n \"rule_id\": \".m.rule.invite_for_me\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.member\"\n }\n ],\n \"actions\": [\n \"dont_notify\"\n ],\n \"rule_id\": \".m.rule.member_event\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"contains_display_name\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"sound\",\n \"value\": \"default\"\n },\n {\n \"set_tweak\": \"highlight\"\n }\n ],\n \"rule_id\": \".m.rule.contains_display_name\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"content.body\",\n \"pattern\": \"@room\"\n },\n {\n \"kind\": \"sender_notification_permission\",\n \"key\": \"room\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"highlight\",\n \"value\": true\n }\n ],\n \"rule_id\": \".m.rule.roomnotif\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.room.tombstone\"\n },\n {\n \"kind\": \"event_match\",\n \"key\": \"state_key\",\n \"pattern\": \"\"\n }\n ],\n \"actions\": [\n \"notify\",\n {\n \"set_tweak\": \"highlight\",\n \"value\": true\n }\n ],\n \"rule_id\": \".m.rule.tombstone\",\n \"default\": true,\n \"enabled\": true\n },\n {\n \"conditions\": [\n {\n \"kind\": \"event_match\",\n \"key\": \"type\",\n \"pattern\": \"m.reaction\"\n }\n ],\n \"actions\": [\n \"dont_notify\"\n ],\n \"rule_id\": \".m.rule.reaction\",\n \"default\": true,\n \"enabled\": true\n }\n ]\n },\n \"device\": {}\n }\n }\n ]\n },\n \"to_device\": {\n \"events\": []\n },\n \"device_lists\": {\n \"changed\": [],\n \"left\": []\n },\n \"presence\": {\n \"events\": [\n {\n \"type\": \"m.presence\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"presence\": \"online\",\n \"last_active_ago\": 444,\n \"currently_active\": true\n }\n }\n ]\n },\n \"rooms\": {\n \"join\": {\n \"!iEOZzedJhdJtozSkCK:post.hyrule.cc\": {\n \"timeline\": {\n \"events\": [\n {\n \"type\": \"m.room.create\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"room_version\": \"5\",\n \"creator\": \"@claire:post.hyrule.cc\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360971618,\n \"unsigned\": {\n \"age\": 324856016\n },\n \"event_id\": \"$sJ6OYdOkSDVmOAngZcufVYZeKaq8MN3tL8Uhk3kbL_c\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\",\n \"avatar_url\": \"mxc://post.hyrule.cc/RKdIOiYvQEBkutEikNQcvywz\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1592360972137,\n \"unsigned\": {\n \"age\": 324855497\n },\n \"event_id\": \"$ZSrKxxwepzaisqJf0Y1QLJnHPIYaZNPsXT2xfd3YV1k\"\n },\n {\n \"type\": \"m.room.power_levels\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"users\": {\n \"@claire:post.hyrule.cc\": 100\n },\n \"users_default\": 0,\n \"events\": {\n \"m.room.name\": 50,\n \"m.room.power_levels\": 100,\n \"m.room.history_visibility\": 100,\n \"m.room.canonical_alias\": 50,\n \"m.room.avatar\": 50,\n \"m.room.tombstone\": 100,\n \"m.room.server_acl\": 100,\n \"m.room.encryption\": 100\n },\n \"events_default\": 0,\n \"state_default\": 50,\n \"ban\": 50,\n \"kick\": 50,\n \"redact\": 50,\n \"invite\": 50\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360972461,\n \"unsigned\": {\n \"age\": 324855173\n },\n \"event_id\": \"$LhWiDPlk5TeqdgkmofJi6qwWcynUqEs82vWLFHRKLjg\"\n },\n {\n \"type\": \"m.room.canonical_alias\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"alias\": \"#nerdsonly:post.hyrule.cc\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360972898,\n \"unsigned\": {\n \"age\": 324854736\n },\n \"event_id\": \"$ryY_eCI5Dg9dyOKIRxtz0xmbFMiMXfkCkfYg39E3V3c\"\n },\n {\n \"type\": \"m.room.join_rules\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"join_rule\": \"public\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360973257,\n \"unsigned\": {\n \"age\": 324854377\n },\n \"event_id\": \"$zWqD4UJq9EJDVlxqdekQiPOwWXb0vIa7U6xH9XNggpY\"\n },\n {\n \"type\": \"m.room.history_visibility\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"history_visibility\": \"shared\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360973745,\n \"unsigned\": {\n \"age\": 324853889\n },\n \"event_id\": \"$mAHuhlSnmIUwxwD4zayTSp-6oFPLKO2_uzT5ar24AtU\"\n },\n {\n \"type\": \"m.room.name\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"name\": \"Nerdy Stuff\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360974424,\n \"unsigned\": {\n \"age\": 324853210\n },\n \"event_id\": \"$4-5nBvrGqbIvk05opUCrMvgUNq20V-Jy04QFOrFJ7Rg\"\n },\n {\n \"type\": \"m.room.topic\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"topic\": \"A public channel for nerdy stuff\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1592360974886,\n \"unsigned\": {\n \"age\": 324852748\n },\n \"event_id\": \"$DvvyuvuhdoehJGW0-tY_H8vWbI9hjR-wd_q0j1G9I80\"\n }\n ],\n \"prev_batch\": \"s84_3821_0_57_1_1_17_86_1\",\n \"limited\": false\n },\n \"state\": {\n \"events\": []\n },\n \"account_data\": {\n \"events\": [\n {\n \"type\": \"m.fully_read\",\n \"content\": {\n \"event_id\": \"$DvvyuvuhdoehJGW0-tY_H8vWbI9hjR-wd_q0j1G9I80\"\n }\n }\n ]\n },\n \"ephemeral\": {\n \"events\": []\n },\n \"unread_notifications\": {},\n \"summary\": {}\n },\n \"!gGpGMWeoEhhMMaWdGT:post.hyrule.cc\": {\n \"timeline\": {\n \"events\": [\n {\n \"type\": \"m.call.candidates\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"version\": 0,\n \"call_id\": \"c15919060032180.7748147521165045\",\n \"candidates\": [\n {\n \"candidate\": \"candidate:4273728266 1 udp 2122260223 192.168.1.125 54952 typ host generation 0 ufrag iyrH network-id 1 network-cost 10\",\n \"sdpMid\": \"0\",\n \"sdpMLineIndex\": 0\n },\n {\n \"candidate\": \"candidate:4273728266 1 udp 2122260223 192.168.1.125 45335 typ host generation 0 ufrag iyrH network-id 1 network-cost 10\",\n \"sdpMid\": \"1\",\n \"sdpMLineIndex\": 1\n },\n {\n \"candidate\": \"candidate:2956466170 1 tcp 1518280447 192.168.1.125 9 typ host tcptype active generation 0 ufrag iyrH network-id 1 network-cost 10\",\n \"sdpMid\": \"0\",\n \"sdpMLineIndex\": 0\n },\n {\n \"candidate\": \"candidate:2956466170 1 tcp 1518280447 192.168.1.125 9 typ host tcptype active generation 0 ufrag iyrH network-id 1 network-cost 10\",\n \"sdpMid\": \"1\",\n \"sdpMLineIndex\": 1\n }\n ]\n },\n \"origin_server_ts\": 1591906006145,\n \"unsigned\": {\n \"age\": 779821489\n },\n \"event_id\": \"$kdssQDx48gI4Xj9e8RPOoMDE28fTNCPN9Al7zzSdlxo\"\n },\n {\n \"type\": \"m.call.hangup\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"version\": 0,\n \"call_id\": \"c15919060032180.7748147521165045\",\n \"reason\": \"invite_timeout\"\n },\n \"origin_server_ts\": 1591906066189,\n \"unsigned\": {\n \"age\": 779761445\n },\n \"event_id\": \"$ORezi_OqdVHh5Y2u-SSsmc4q4NgrOk4keMsOSy-9GfU\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"test\"\n },\n \"origin_server_ts\": 1591910069654,\n \"unsigned\": {\n \"age\": 775757980\n },\n \"event_id\": \"$XMp7Ha2MxfteVmqlmlJk684BdoFZapPFIz0kdpJY8pc\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\",\n \"avatar_url\": \"mxc://post.hyrule.cc/SJvUBWJQkhzpOtGWMAaEAgAj\"\n },\n \"state_key\": \"@jay:post.hyrule.cc\",\n \"origin_server_ts\": 1592019802207,\n \"unsigned\": {\n \"replaces_state\": \"$kulF3B0iVmAHky2EbHJxvmGK8HlcBMolcJN2bpPSuvo\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\"\n },\n \"prev_sender\": \"@jay:post.hyrule.cc\",\n \"age\": 666025427\n },\n \"event_id\": \"$fDB3EP_IPyrTT4L_QfgX0L7mDAWMZepceMkK5qBvBjE\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1592020047819,\n \"unsigned\": {\n \"replaces_state\": \"$aWTER7_eLhOTDphn5qun81Yv5pXMdF-9tk880d0HQxw\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"claire\"\n },\n \"prev_sender\": \"@claire:post.hyrule.cc\",\n \"age\": 665779815\n },\n \"event_id\": \"$7jPKVQpUKSYdyJCmLRRho-GMmE5zoR_cDJUJIrv17fo\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\",\n \"avatar_url\": \"mxc://post.hyrule.cc/RKdIOiYvQEBkutEikNQcvywz\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1592020049836,\n \"unsigned\": {\n \"replaces_state\": \"$7jPKVQpUKSYdyJCmLRRho-GMmE5zoR_cDJUJIrv17fo\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\"\n },\n \"prev_sender\": \"@claire:post.hyrule.cc\",\n \"age\": 665777798\n },\n \"event_id\": \"$ukskv7VzBOPFv8K44K6HVlmW0TM7ZpLmkaLwn-kJqfQ\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"butts\"\n },\n \"origin_server_ts\": 1592020103438,\n \"unsigned\": {\n \"age\": 665724196\n },\n \"event_id\": \"$tfxzWv0dJxLPDt4kTj91kQfRFyggrqNZLu6fR78d-B0\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"From now on, it'll be with your new avatar\"\n },\n \"origin_server_ts\": 1592020103711,\n \"unsigned\": {\n \"age\": 665723923\n },\n \"event_id\": \"$p3k4jtfejod6tZMWdecAMSttQNzkKRSTaZJCtOU8hAs\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"this is neat\"\n },\n \"origin_server_ts\": 1592020107312,\n \"unsigned\": {\n \"age\": 665720322\n },\n \"event_id\": \"$c2LQnx63ME0JELRdCOwuJG2BINSxatcT82KNN7iPPrE\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"butts butts butts\"\n },\n \"origin_server_ts\": 1592020109549,\n \"unsigned\": {\n \"age\": 665718085\n },\n \"event_id\": \"$RJ1iJAKhVxH28SxHLToYTHVThCcoM2h_FZyAAIUdOl4\"\n }\n ],\n \"prev_batch\": \"t13-19_3821_0_57_1_1_17_86_1\",\n \"limited\": true\n },\n \"state\": {\n \"events\": [\n {\n \"type\": \"m.room.guest_access\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"guest_access\": \"can_join\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591901096163,\n \"unsigned\": {\n \"age\": 784731471\n },\n \"event_id\": \"$tVrzSLRrGmiqrhcFAIRxK0bqsMeD4xjo3D7fpgupqTs\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"claire\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1591905639351,\n \"unsigned\": {\n \"replaces_state\": \"$rAIEXypyyC_2eaAZ11VtKvD8qWwTD6px4H8xGiZuaD8\",\n \"prev_content\": {\n \"is_direct\": true,\n \"membership\": \"invite\",\n \"displayname\": \"claire\"\n },\n \"prev_sender\": \"@jay:post.hyrule.cc\",\n \"age\": 780188283\n },\n \"event_id\": \"$aWTER7_eLhOTDphn5qun81Yv5pXMdF-9tk880d0HQxw\"\n },\n {\n \"type\": \"m.room.history_visibility\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"history_visibility\": \"shared\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591901095658,\n \"unsigned\": {\n \"age\": 784731976\n },\n \"event_id\": \"$7jCQJmcP0vydaXmYq-7hLytW1IvdlwSHDMdztv-4Aq4\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\"\n },\n \"state_key\": \"@jay:post.hyrule.cc\",\n \"origin_server_ts\": 1591901094466,\n \"unsigned\": {\n \"age\": 784733168\n },\n \"event_id\": \"$kulF3B0iVmAHky2EbHJxvmGK8HlcBMolcJN2bpPSuvo\"\n },\n {\n \"type\": \"m.room.create\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"room_version\": \"5\",\n \"creator\": \"@jay:post.hyrule.cc\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591901093918,\n \"unsigned\": {\n \"age\": 784733716\n },\n \"event_id\": \"$ub2hvdrBC8z-LAH0b-cVOahuegTrQRCWkeCz91SaHUA\"\n },\n {\n \"type\": \"m.room.join_rules\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"join_rule\": \"invite\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591901095203,\n \"unsigned\": {\n \"age\": 784732431\n },\n \"event_id\": \"$XdaCM5_AumDDtWiAHdfscyLOKzIUBb_ZbkilEfvo4UU\"\n },\n {\n \"type\": \"m.room.power_levels\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"users\": {\n \"@jay:post.hyrule.cc\": 100,\n \"@claire:post.hyrule.cc\": 100\n },\n \"users_default\": 0,\n \"events\": {\n \"m.room.name\": 50,\n \"m.room.power_levels\": 100,\n \"m.room.history_visibility\": 100,\n \"m.room.canonical_alias\": 50,\n \"m.room.avatar\": 50,\n \"m.room.tombstone\": 100,\n \"m.room.server_acl\": 100,\n \"m.room.encryption\": 100\n },\n \"events_default\": 0,\n \"state_default\": 50,\n \"ban\": 50,\n \"kick\": 50,\n \"redact\": 50,\n \"invite\": 0\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591901094797,\n \"unsigned\": {\n \"age\": 784732837\n },\n \"event_id\": \"$8EOZ273lTw-8ocwRM4f_1pjQhY9coCqdEe3cjO11P1A\"\n }\n ]\n },\n \"account_data\": {\n \"events\": [\n {\n \"type\": \"m.fully_read\",\n \"content\": {\n \"event_id\": \"$RJ1iJAKhVxH28SxHLToYTHVThCcoM2h_FZyAAIUdOl4\"\n }\n }\n ]\n },\n \"ephemeral\": {\n \"events\": [\n {\n \"type\": \"m.receipt\",\n \"content\": {\n \"$c2LQnx63ME0JELRdCOwuJG2BINSxatcT82KNN7iPPrE\": {\n \"m.read\": {\n \"@jay:post.hyrule.cc\": {\n \"ts\": 1592020107783\n }\n }\n },\n \"$RJ1iJAKhVxH28SxHLToYTHVThCcoM2h_FZyAAIUdOl4\": {\n \"m.read\": {\n \"@claire:post.hyrule.cc\": {\n \"ts\": 1592020662042\n }\n }\n }\n }\n }\n ]\n },\n \"unread_notifications\": {\n \"notification_count\": 0,\n \"highlight_count\": 0\n },\n \"summary\": {}\n },\n \"!OdeSTaDBtVXdpAAVue:post.hyrule.cc\": {\n \"timeline\": {\n \"events\": [\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"the UI is just enormous by comparison\"\n },\n \"origin_server_ts\": 1591907739492,\n \"unsigned\": {\n \"age\": 778088142\n },\n \"event_id\": \"$F3SebL9S7ndGf0kEtD-_O7VNrCJTv7Xrj2187mYyTp0\"\n },\n {\n \"type\": \"m.room.redaction\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {},\n \"redacts\": \"$8CpoHVMQjW6idnAXbM_AqF2cpNCZOfcNrf1y7g1pgIc\",\n \"origin_server_ts\": 1591907782723,\n \"unsigned\": {\n \"age\": 778044911\n },\n \"event_id\": \"$YjvBCC-IzXY1Vn67PHG9ZHflmUsOjKkUOjbUZBSSj7I\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"body\": \"image.png\",\n \"info\": {\n \"size\": 96883,\n \"mimetype\": \"image/png\",\n \"thumbnail_info\": {\n \"w\": 800,\n \"h\": 458,\n \"mimetype\": \"image/png\",\n \"size\": 74584\n },\n \"w\": 1280,\n \"h\": 733,\n \"thumbnail_url\": \"mxc://post.hyrule.cc/vcTfUvRQUHlYtygbQTwEZRUL\"\n },\n \"msgtype\": \"m.image\",\n \"url\": \"mxc://post.hyrule.cc/yrlNZxoteIwWLrkxbsgopLiD\"\n },\n \"origin_server_ts\": 1591907787861,\n \"unsigned\": {\n \"age\": 778039773\n },\n \"event_id\": \"$gtp3cFyjM0NoEAPk8oh0CpW-5wx9YNhua_p2ZBALW9c\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\",\n \"avatar_url\": \"mxc://post.hyrule.cc/SJvUBWJQkhzpOtGWMAaEAgAj\"\n },\n \"state_key\": \"@jay:post.hyrule.cc\",\n \"origin_server_ts\": 1592019801698,\n \"unsigned\": {\n \"replaces_state\": \"$xSq70WplyPage-bR3NcHq4gAEIT-8he0ngu88jr2exU\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\"\n },\n \"prev_sender\": \"@jay:post.hyrule.cc\",\n \"age\": 666025936\n },\n \"event_id\": \"$a2jE7MKG4jQ_-rx6szaayBcIQTO-TNvzvJsZ0qDPUns\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1592020047301,\n \"unsigned\": {\n \"replaces_state\": \"$NOkbQMy6nma818erRg31Adh6rVYZXBqclivbKo-4EpY\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"claire\"\n },\n \"prev_sender\": \"@claire:post.hyrule.cc\",\n \"age\": 665780333\n },\n \"event_id\": \"$kcD7ljDlfYOBJYkj-ETsci6mceaKFX83W5ogXDD_qmI\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\",\n \"avatar_url\": \"mxc://post.hyrule.cc/RKdIOiYvQEBkutEikNQcvywz\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1592020049343,\n \"unsigned\": {\n \"replaces_state\": \"$kcD7ljDlfYOBJYkj-ETsci6mceaKFX83W5ogXDD_qmI\",\n \"prev_content\": {\n \"membership\": \"join\",\n \"displayname\": \"Claire\"\n },\n \"prev_sender\": \"@claire:post.hyrule.cc\",\n \"age\": 665778291\n },\n \"event_id\": \"$i-Eyg2S9JhtKIjRgzp5GWGN6hVvDjdJ1_KknHW_XS7Q\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"hi\"\n },\n \"origin_server_ts\": 1592021022525,\n \"unsigned\": {\n \"age\": 664805109\n },\n \"event_id\": \"$78MKiI5wXFlCirtLkpe_BnQH_DcB5q8sXvcHDbzXhZI\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"haha you can't press enter to send a message\"\n },\n \"origin_server_ts\": 1592021034633,\n \"unsigned\": {\n \"age\": 664793001\n },\n \"event_id\": \"$g8gXjqKM7XWZV1t_d5cYyYDEPCzczWVpbUgEpjiR8Y4\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"test]\"\n },\n \"origin_server_ts\": 1592021081708,\n \"unsigned\": {\n \"age\": 664745926\n },\n \"event_id\": \"$H1m50rEleK2tEWmY7-dTdEPlUT46lljQuIUvXkw-rjo\"\n },\n {\n \"type\": \"m.room.message\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"msgtype\": \"m.text\",\n \"body\": \"eyyy it worked\"\n },\n \"origin_server_ts\": 1592021085433,\n \"unsigned\": {\n \"age\": 664742201\n },\n \"event_id\": \"$hwk9J-XRURGRvVu8EfIM6yIs7oTJX4RHjgsC89L7oXI\"\n }\n ],\n \"prev_batch\": \"t44-58_3821_0_57_1_1_17_86_1\",\n \"limited\": true\n },\n \"state\": {\n \"events\": [\n {\n \"type\": \"m.room.history_visibility\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"history_visibility\": \"shared\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591905971725,\n \"unsigned\": {\n \"age\": 779855909\n },\n \"event_id\": \"$h8jIhCdFIGavE_N-_B1PcMxMIzs3PAatR_P2lzKgr8M\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@jay:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"jay\"\n },\n \"state_key\": \"@jay:post.hyrule.cc\",\n \"origin_server_ts\": 1591907265464,\n \"unsigned\": {\n \"replaces_state\": \"$QAt6I0pTligtc3MOq0fEA4zDMoFaqldG9FkYhEOxp-I\",\n \"age\": 778562170\n },\n \"event_id\": \"$xSq70WplyPage-bR3NcHq4gAEIT-8he0ngu88jr2exU\"\n },\n {\n \"type\": \"m.room.power_levels\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"users\": {\n \"@claire:post.hyrule.cc\": 100\n },\n \"users_default\": 0,\n \"events\": {\n \"m.room.name\": 50,\n \"m.room.power_levels\": 100,\n \"m.room.history_visibility\": 100,\n \"m.room.canonical_alias\": 50,\n \"m.room.avatar\": 50,\n \"m.room.tombstone\": 100,\n \"m.room.server_acl\": 100,\n \"m.room.encryption\": 100\n },\n \"events_default\": 0,\n \"state_default\": 50,\n \"ban\": 50,\n \"kick\": 50,\n \"redact\": 50,\n \"invite\": 50\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591905970691,\n \"unsigned\": {\n \"age\": 779856943\n },\n \"event_id\": \"$ILYd8-lWb3vpTyeAm73CAs_Dm3GCyXeJDwM4pgDmt9w\"\n },\n {\n \"type\": \"m.room.member\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"membership\": \"join\",\n \"displayname\": \"claire\"\n },\n \"state_key\": \"@claire:post.hyrule.cc\",\n \"origin_server_ts\": 1591905970349,\n \"unsigned\": {\n \"age\": 779857285\n },\n \"event_id\": \"$NOkbQMy6nma818erRg31Adh6rVYZXBqclivbKo-4EpY\"\n },\n {\n \"type\": \"m.room.join_rules\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"join_rule\": \"public\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591905971142,\n \"unsigned\": {\n \"age\": 779856492\n },\n \"event_id\": \"$zUSAikyCKbhOfIl0cWb4y8bI8wHWLZhIlelP8BLmBPM\"\n },\n {\n \"type\": \"m.room.name\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"name\": \"boobs\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591905972652,\n \"unsigned\": {\n \"age\": 779854982\n },\n \"event_id\": \"$n0A5l9t5_zgy8vlkSBQP3cJbwej3ENW1LckBSW_QxvU\"\n },\n {\n \"type\": \"m.room.create\",\n \"sender\": \"@claire:post.hyrule.cc\",\n \"content\": {\n \"room_version\": \"5\",\n \"creator\": \"@claire:post.hyrule.cc\"\n },\n \"state_key\": \"\",\n \"origin_server_ts\": 1591905969834,\n \"unsigned\": {\n \"age\": 779857800\n },\n \"event_id\": \"$ukewPt_m8GLbjjB529a1i6mLjOm3YLox1zan0tJr9yU\"\n }\n ]\n },\n \"account_data\": {\n \"events\": [\n {\n \"type\": \"m.fully_read\",\n \"content\": {\n \"event_id\": \"$hwk9J-XRURGRvVu8EfIM6yIs7oTJX4RHjgsC89L7oXI\"\n }\n }\n ]\n },\n \"ephemeral\": {\n \"events\": [\n {\n \"type\": \"m.receipt\",\n \"content\": {\n \"$hwk9J-XRURGRvVu8EfIM6yIs7oTJX4RHjgsC89L7oXI\": {\n \"m.read\": {\n \"@jay:post.hyrule.cc\": {\n \"ts\": 1592021102633\n }\n }\n },\n \"$g8gXjqKM7XWZV1t_d5cYyYDEPCzczWVpbUgEpjiR8Y4\": {\n \"m.read\": {\n \"@claire:post.hyrule.cc\": {\n \"ts\": 1592071800533\n }\n }\n }\n }\n }\n ]\n },\n \"unread_notifications\": {\n \"notification_count\": 0,\n \"highlight_count\": 0\n },\n \"summary\": {}\n }\n },\n \"invite\": {},\n \"leave\": {}\n },\n \"groups\": {\n \"join\": {},\n \"invite\": {},\n \"leave\": {}\n },\n \"device_one_time_keys_count\": {},\n \"next_batch\": \"s84_3821_0_57_1_1_17_86_1\"\n}";
dynamic d = JObject.Parse(txt);
JObject obj = d.rooms.join;
JEnumerable<JToken> kids = obj.Children();
foreach (JProperty kid in kids)
{
Console.WriteLine(kid.Name);
Console.WriteLine(kid.Value);
}
//Console.WriteLine(d.rooms.join["!gGpGMWeoEhhMMaWdGT:post.hyrule.cc"].timeline.events);
}
// Define other methods and classes here
public class MatrixSyncBody
{
public MatrixSyncRooms Rooms { get; set; }
}
public class MatrixSyncRooms
{
// once the JSON from "join" is parsed, this is set to its contents as an object
public Dictionary<string,MatrixSyncRoom> Joined { get; private set;}
public JObject Join
{
get { return null; }
set
{
// takes JSON children and parses them into objects
// we have to do this bc the entity names under "join" are dynamic
// each entity holds a well-defined object though
// these AREN'T an array
ParseRooms(value);
}
}
public void ParseRooms(JObject roomsJson)
{
// get the children of this object
}
}
public class MatrixSyncRoom
{
public MatrixTimeline Timeline { get; set; }
}
public class MatrixTimeline
{
public MatrixEvent[] Events { get; set; }
[JsonProperty("prev_batch")]
public string PreviousBatch { get; set; }
public bool IsLimited { get; set; }
}
public class MatrixEvent
{
public string EventType { get; set; }
}