Browse Source

GetRoomAliases() now works.

TODO:
get friendly name of 1:1 chats
master
Claire 4 years ago
parent
commit
93c7a850d6
  1. BIN
      MatrixDotNetLib/.vs/MatrixDotNetLib/v16/.suo
  2. 99
      MatrixDotNetLib/MatrixDotNetCmd/Program.cs
  3. BIN
      MatrixDotNetLib/MatrixDotNetCmd/obj/Debug/netcoreapp3.1/MatrixDotNetCmd.csprojAssemblyReference.cache
  4. 199
      MatrixDotNetLib/MatrixDotNetLib/MatrixApis.cs
  5. 13
      MatrixDotNetLib/MatrixDotNetLib/MatrixRoomAliases.cs
  6. 10
      MatrixDotNetLib/MatrixDotNetLib/MatrixRoomManager.cs
  7. 25
      MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs
  8. 15
      MatrixDotNetLib/MatrixDotNetLib/MatrixUtil.cs
  9. BIN
      MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.dll
  10. BIN
      MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.pdb
  11. 2
      MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache
  12. BIN
      MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csprojAssemblyReference.cache
  13. BIN
      MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.dll
  14. BIN
      MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.pdb
  15. 42
      Scripts/Read response as async.linq

BIN
MatrixDotNetLib/.vs/MatrixDotNetLib/v16/.suo

diff.bin_not_shown

99
MatrixDotNetLib/MatrixDotNetCmd/Program.cs

@ -1,5 +1,7 @@
using System;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using MatrixDotNetLib;
using Newtonsoft.Json;
@ -8,15 +10,12 @@ namespace MatrixDotNetCmd
class Program
{
static void Main(string[] args)
{
// create new globals object
Globals globals = new Globals();
{
// start output
Console.WriteLine("MatrixDotNetLib v0.1 - A .NET Core library for Matrix");
// create a new Matrix session
MatrixSessionManager session = new MatrixSessionManager();
MatrixSessionManager session = new MatrixSessionManager();
// input server
Console.Write("Enter Matrix server FQDN:");
@ -66,17 +65,8 @@ namespace MatrixDotNetCmd
// notify user is logged in
Console.WriteLine("Logged in!");
// assign globals
globals.Token = response.Token;
globals.Server = server;
globals.Session = response;
MatrixUserRooms rooms = session.GetRooms();
// prompt user to choose a room
// i guess we should find an alias for each room, if it exists
Console.WriteLine(rooms.Joined[0]);
// show the room menu
RoomMenu();
}
catch(Exception ex)
{
@ -86,24 +76,65 @@ namespace MatrixDotNetCmd
// display the error code and message
Console.WriteLine(ex.Message);
}
}
}
public class Globals
{
/// <summary>
/// Gets or sets login session token
/// </summary>
public string Token { get; set; }
/// <summary>
/// Gets or sets server FQDN
/// </summary>
public string Server { get; set; }
/// <summary>
/// Gets or sets the login session as an object
/// </summary>
public MatrixLoginResponse Session { get; set; }
void RoomMenu()
{
MatrixUserRooms rooms = session.GetRooms();
// prompt user to choose a room
// i guess we should find an alias for each room, if it exists
string roomList = "Select a room:";
for (int i = 0; i < rooms.Joined.Count(); i++)
{
string roomId = rooms.Joined[i];
// get the aliases for the room
MatrixRoomAliases roomAliases = session.GetRoomAliases(roomId);
if (roomAliases.Aliases.Count() == 0)
{
roomList += "\n[" + i + "] " + roomId;
}
else
{
roomList += "\n[" + i + "] " + roomAliases.Aliases[0];
}
}
roomList += "\n";
Console.Write(roomList);
string roomListItem = Console.ReadLine();
if (roomListItem.Trim() == "")
{
// user didn't select a room, now what?
Console.WriteLine("You didn't select a room. Type /join #roomId to join a room, or /join to view a list of public rooms.");
string stdIn = Console.ReadLine();
SlashInput(stdIn);
}
else
{
int roomListInt = Convert.ToInt32(roomListItem);
string theRoomId = rooms.Joined[roomListInt];
}
}
void SlashInput(string stdIn)
{
// read the input and figure out what to do with it
switch (stdIn)
{
case "/join":
RoomMenu();
break;
case "":
break;
}
}
}
}
}

BIN
MatrixDotNetLib/MatrixDotNetCmd/obj/Debug/netcoreapp3.1/MatrixDotNetCmd.csprojAssemblyReference.cache

diff.bin_not_shown

199
MatrixDotNetLib/MatrixDotNetLib/MatrixApis.cs

@ -6,64 +6,63 @@ namespace MatrixDotNetLib
{
public class MatrixApis
{
public static class Server
{
/// <summary>
/// Gets discovery information about the domain.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWellknown
/// </remarks>
public static string Discovery = "/.well-known/matrix/client";
/// <summary>
/// Gets the versions of the specifications supported by the server.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getVersions
/// </remarks>
public static string Versions = "/_matrix/client/versions";
public static class Server
{
/// <summary>
/// Gets discovery information about the domain.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWellknown
/// </remarks>
public static string Discovery = "/.well-known/matrix/client";
/// <summary>
/// Gets the versions of the specifications supported by the server.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getVersions
/// </remarks>
public static string Versions = "/_matrix/client/versions";
/// <summary>
/// Gets information about the server's supported feature set and other relevant capabilities.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Capabilities/getCapabilities
/// </remarks>
public static string Capabilities = "/_matrix/client/r0/capabilities";
/// <summary>
/// Gets information about a particular user.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWhoIs
/// </remarks>
public static string Whois = "/_matrix/client/r0/admin/whois/{userid}";
/// <summary>
/// Performs a full text search across different categories. Posts with a search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Search/search
/// </remarks>
public static string Search = "/_matrix/client/r0/search";
/// <summary>
/// Performs a user search. Posts with a user search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/User32data/searchUserDirectory
/// </remarks>
public static string UserSearch = "/_matrix/client/r0/user_directory/search";
/// <summary>
/// Lists the public rooms on the server. Posts with a filter object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32discovery/getPublicRooms
/// </remarks>
public static string RoomList = "/_matrix/client/r0/publicrooms";
/// <summary>
/// Gets information about the server's supported feature set and other relevant capabilities.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Capabilities/getCapabilities
/// </remarks>
public static string Capabilities = "/_matrix/client/r0/capabilities";
/// <summary>
/// Gets information about a particular user.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Server32administration/getWhoIs
/// </remarks>
public static string Whois = "/_matrix/client/r0/admin/whois/{UserId}";
/// <summary>
/// Performs a full text search across different categories. Posts with a search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Search/search
/// </remarks>
public static string Search = "/_matrix/client/r0/search";
/// <summary>
/// Performs a user search. Posts with a user search object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/User32data/searchUserDirectory
/// </remarks>
public static string UserSearch = "/_matrix/client/r0/user_directory/search";
/// <summary>
/// Lists the public rooms on the server. Posts with a filter object.
/// </summary>
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32discovery/getPublicRooms
/// </remarks>
public static string RoomList = "/_matrix/client/r0/publicrooms";
/// <summary>
/// Updates the visibility of a given room in the directory. Puts a visibility object.
@ -71,7 +70,7 @@ namespace MatrixDotNetLib
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Application32service32room32directory32management/updateAppserviceRoomDirectoryVsibility
/// </remarks>
public static string ManageRooms = "/_matrix/client/r0/directory/list/appservice/{networkid}/{roomid}";
public static string ManageRooms = "/_matrix/client/r0/directory/list/appservice/{NetworkId}/{RoomId}";
/// <summary>
/// Upgrades the given room to a particular room version. Posts with a room upgrade object.
@ -79,7 +78,7 @@ namespace MatrixDotNetLib
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Room32upgrades/upgradeRoom
/// </remarks>
public static string UpgradeRoom = "/_matrix/client/r0/rooms/{roomid}/upgrade";
public static string UpgradeRoom = "/_matrix/client/r0/rooms/{RoomId}/upgrade";
/// <summary>
/// Gets an OpenID token object for use with another service. Posts with a userId parameter.
@ -87,7 +86,7 @@ namespace MatrixDotNetLib
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/OpenID/requestOpenIdToken
/// </remarks>
public static string Openid = "/_matrix/client/r0/user/{userid}/openid/request_token";
public static string Openid = "/_matrix/client/r0/user/{UserId}/openid/request_token";
/// <summary>
/// Gets client credentials for use when initiating a call.
@ -96,7 +95,7 @@ namespace MatrixDotNetLib
/// https://matrix.org/docs/api/client-server/#!/VOIP/getTurnServer
/// </remarks>
public static string Voip = "/_matrix/client/r0/voip/turnserver";
}
}
public static class Key
{
@ -138,7 +137,7 @@ namespace MatrixDotNetLib
/// <summary>
/// Private string for device URL
/// </summary>
private static string _deviceIdUrl = "/_matrix/client/r0/devices/{deviceId}";
private static string _deviceIdUrl = "/_matrix/client/r0/devices/{DeviceId}";
/// <summary>
/// Gets information about all devices for the current user.
@ -186,7 +185,7 @@ namespace MatrixDotNetLib
/// <remarks>
/// https://matrix.org/docs/api/client-server/#!/Send45to45Device32messaging/sendToDevice
/// </remarks>
public static string Send = "/_matrix/client/r0/sendtodevice/{eventtype}/{txnid}";
public static string Send = "/_matrix/client/r0/sendtodevice/{EventType}/{TxnId}";
}
public static class Media
@ -206,7 +205,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Save = "/_matrix/media/r0/download/{servername}/{mediaid}";
public static string Save = "/_matrix/media/r0/download/{ServerName}/{MediaId}";
/// <summary>
///
@ -214,7 +213,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Saveas = "/_matrix/media/r0/download/{servername}/{mediaid}/{filename}";
public static string Saveas = "/_matrix/media/r0/download/{ServerName}/{MediaId}/{Filename}";
/// <summary>
///
@ -230,7 +229,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Thumb = "/_matrix/media/r0/thumbnail/{servername}/{mediaid}";
public static string Thumb = "/_matrix/media/r0/thumbnail/{ServerName}/{MediaId}";
/// <summary>
///
@ -286,7 +285,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Manage = "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleid}";
public static string Manage = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}";
/// <summary>
///
@ -294,7 +293,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Actions = "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleid}/actions";
public static string Actions = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}/actions";
/// <summary>
///
@ -302,7 +301,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Toggle = "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleid}/enabled";
public static string Toggle = "/_matrix/client/r0/pushrules/{scope}/{Kind}/{RuleId}/enabled";
}
public static class User
@ -354,7 +353,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Profile = "/_matrix/client/r0/profile/{userid}";
public static string Profile = "/_matrix/client/r0/profile/{UserId}";
/// <summary>
///
@ -362,7 +361,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Avatar = "/_matrix/client/r0/profile/{userid}/avtatar_url";
public static string Avatar = "/_matrix/client/r0/profile/{UserId}/avtatar_url";
/// <summary>
///
@ -370,7 +369,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string DisplayName = "/_matrix/client/r0/profile/{userid}/displayname";
public static string DisplayName = "/_matrix/client/r0/profile/{UserId}/displayname";
/// <summary>
///
@ -378,7 +377,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string ExtraInfo = "/_matrix/client/r0/user/{userid}/account_data/{type}";
public static string ExtraInfo = "/_matrix/client/r0/user/{UserId}/account_data/{type}";
/// <summary>
///
@ -386,7 +385,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string EventFilter = "/_matrix/client/r0/user/{userid}/filter";
public static string EventFilter = "/_matrix/client/r0/user/{UserId}/filter";
/// <summary>
/// Gets a list of the user's current rooms.
@ -418,7 +417,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Status = "/_matrix/client/r0/presence/{userid}/status";
public static string Status = "/_matrix/client/r0/presence/{UserId}/status";
}
public static class UserRoom
@ -430,7 +429,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Extrainfo = "/_matrix/client/r0/user/{userid}/rooms/{roomid}/account_data/{type}";
public static string Extrainfo = "/_matrix/client/r0/user/{UserId}/rooms/{RoomId}/account_data/{type}";
/// <summary>
///
@ -438,7 +437,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Tags = "/_matrix/client/r0/user/{userid}/rooms/{roomid}/tags";
public static string Tags = "/_matrix/client/r0/user/{UserId}/rooms/{RoomId}/tags";
}
public static class Room
@ -458,7 +457,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Aliases = "/_matrix/client/unstable/org.matrix.msc2432/rooms/{roomid}/aliases";
public static string Aliases = "/_matrix/client/unstable/org.matrix.msc2432/rooms/{RoomId}/aliases";
/// <summary>
///
@ -466,7 +465,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Active = "/_matrix/client/r0/rooms/{roomid}/joined_members";
public static string Active = "/_matrix/client/r0/rooms/{RoomId}/joined_members";
/// <summary>
///
@ -474,7 +473,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Members = "/_matrix/client/r0/rooms/{roomid}/members";
public static string Members = "/_matrix/client/r0/rooms/{RoomId}/members";
/// <summary>
///
@ -482,7 +481,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Messages = "/_matrix/client/r0/rooms/{roomid}/messages";
public static string Messages = "/_matrix/client/r0/rooms/{RoomId}/messages";
/// <summary>
///
@ -490,7 +489,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Join = "/_matrix/client/r0/join/{roomidoralias}";
public static string Join = "/_matrix/client/r0/join/{RoomIdOrAlias}";
/// <summary>
///
@ -498,7 +497,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Ban = "/_matrix/client/r0/rooms/{roomid}/ban";
public static string Ban = "/_matrix/client/r0/rooms/{RoomId}/ban";
/// <summary>
///
@ -506,7 +505,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Forget = "/_matrix/client/r0/rooms/{roomid}/forget";
public static string Forget = "/_matrix/client/r0/rooms/{RoomId}/forget";
/// <summary>
///
@ -514,7 +513,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Invite = "/_matrix/client/r0/rooms/{roomid}/invite";
public static string Invite = "/_matrix/client/r0/rooms/{RoomId}/invite";
/// <summary>
///
@ -522,7 +521,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string IdJoin = "/_matrix/client/r0/rooms/{roomid}/join";
public static string IdJoin = "/_matrix/client/r0/rooms/{RoomId}/join";
/// <summary>
///
@ -530,7 +529,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Kick = "/_matrix/client/r0/rooms/{roomid}/kick";
public static string Kick = "/_matrix/client/r0/rooms/{RoomId}/kick";
/// <summary>
///
@ -538,7 +537,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Leave = "/_matrix/client/r0/rooms/{roomid}/leave";
public static string Leave = "/_matrix/client/r0/rooms/{RoomId}/leave";
/// <summary>
///
@ -546,7 +545,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Unban = "/_matrix/client/r0/rooms/{roomid}/unban";
public static string Unban = "/_matrix/client/r0/rooms/{RoomId}/unban";
/// <summary>
///
@ -554,7 +553,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Marker = "/_matrix/client/r0/rooms/{roomid}/read_markers";
public static string Marker = "/_matrix/client/r0/rooms/{RoomId}/read_markers";
}
public static class RoomEvent
@ -566,7 +565,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Context = "/_matrix/client/r0/rooms/{roomid}/context/{eventid}";
public static string Context = "/_matrix/client/r0/rooms/{RoomId}/context/{EventId}";
/// <summary>
///
@ -574,7 +573,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Event = "/_matrix/client/r0/rooms/{roomid}/event/{eventid}";
public static string Event = "/_matrix/client/r0/rooms/{RoomId}/event/{EventId}";
/// <summary>
///
@ -582,7 +581,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Receipt = "/_matrix/client/r0/rooms/{roomid}/receipt/{receipttype}/{eventid}";
public static string Receipt = "/_matrix/client/r0/rooms/{RoomId}/receipt/{ReceiptType}/{EventId}";
/// <summary>
///
@ -590,7 +589,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Redact = "/_matrix/client/r0/rooms/{roomid}/redact/{eventid}/{txnid}";
public static string Redact = "/_matrix/client/r0/rooms/{RoomId}/redact/{EventId}/{TxnId}";
/// <summary>
///
@ -598,7 +597,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Send = "/_matrix/client/r0/rooms/{roomid}/send/{eventtype}/{txnid}";
public static string Send = "/_matrix/client/r0/rooms/{RoomId}/send/{EventType}/{TxnId}";
/// <summary>
///
@ -606,7 +605,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Typing = "/_matrix/client/r0/rooms/{roomid}/typing/{userid}";
public static string Typing = "/_matrix/client/r0/rooms/{RoomId}/typing/{UserId}";
/// <summary>
///
@ -614,7 +613,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string Flag = "/_matrix/client/r0/rooms/{roomid}/report/{eventid}";
public static string Flag = "/_matrix/client/r0/rooms/{RoomId}/report/{EventId}";
}
public static class RoomState
@ -626,7 +625,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string List = "/_matrix/client/r0/rooms/{roomid}/state";
public static string List = "/_matrix/client/r0/rooms/{RoomId}/state";
/// <summary>
///
@ -634,7 +633,7 @@ namespace MatrixDotNetLib
/// <remarks>
///
/// </remarks>
public static string State = "/_matrix/client/r0/rooms/{roomid}/state/{eventtype}/{statekey}";
public static string State = "/_matrix/client/r0/rooms/{RoomId}/state/{EventType}/{StateKey}";
}
}
@ -643,7 +642,7 @@ namespace MatrixDotNetLib
public string DeviceId { get; set; }
public string EventId { get; set; }
public string EventType { get; set; }
public string FileName { get; set; }
public string Filename { get; set; }
public string FilterId { get; set; }
public string Kind { get; set; }
public string MediaId { get; set; }

13
MatrixDotNetLib/MatrixDotNetLib/MatrixRoomAliases.cs

@ -0,0 +1,13 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace MatrixDotNetLib
{
public class MatrixRoomAliases
{
[JsonProperty("aliases")]
public string[] Aliases { get; set; }
}
}

10
MatrixDotNetLib/MatrixDotNetLib/MatrixRoomManager.cs

@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace MatrixDotNetLib
{
public class MatrixRoomManager
{
}
}

25
MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs

@ -82,12 +82,22 @@ namespace MatrixDotNetLib
/// <returns></returns>
public MatrixUserRooms GetRooms()
{
string responseJson = ApiResult(MatrixApis.User.Rooms, httpAction.GET);
MatrixUserRooms theRooms = JsonConvert.DeserializeObject<MatrixUserRooms>(responseJson);
return (MatrixUserRooms)JsonConvert.DeserializeObject<MatrixUserRooms>(responseJson);
}
/// <summary>
/// Gets the aliases for the given (string)roomId
/// </summary>
/// <param name="roomId"></param>
/// <returns></returns>
public MatrixRoomAliases GetRoomAliases(string roomId)
{
MatrixApiEntities entities = new MatrixApiEntities() { RoomId = roomId };
string responseJson = ApiResult(MatrixApis.Room.Aliases, httpAction.GET, entities: entities);
return theRooms;
return (MatrixRoomAliases)JsonConvert.DeserializeObject<MatrixRoomAliases>(responseJson);
}
public enum httpAction
@ -114,8 +124,7 @@ namespace MatrixDotNetLib
// if an access token exists, create a bearer authorization header
if (this.Token != null)
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.Token);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.Token);
}
// init empty string
@ -140,17 +149,17 @@ namespace MatrixDotNetLib
foreach (Match match in rgx.Matches(url))
{
string oldVal = match.Value;
string prop = util.UpperFirst(match.Groups[1].Value);
string prop = match.Groups[1].Value;
// check if property exists in entity list
try
{
// get value of property through GetType().GetProperty().GetValue()
// sauce: https://www.techrepublic.com/article/applied-reflection-dynamically-accessing-properties-of-a-class-at-runtime/
string newVal = entities.GetType().GetProperty(prop).GetValue(entities).ToString();
string newVal = WebUtility.UrlEncode(entities.GetType().GetProperty(prop).GetValue(entities).ToString());
// return URL with entities replaced and URL-encoded
url = WebUtility.UrlEncode(url.Replace(oldVal, newVal));
url = url.Replace(oldVal, newVal);
}
catch
{

15
MatrixDotNetLib/MatrixDotNetLib/MatrixUtil.cs

@ -6,20 +6,5 @@ namespace MatrixDotNetLib
{
public class MatrixUtil
{
/// <summary>
/// Returns string with first letter capitalized
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public string UpperFirst(string s)
{
// Check for empty string.
if (string.IsNullOrEmpty(s))
{
return string.Empty;
}
// Return char and concat substring.
return char.ToUpper(s[0]) + s.Substring(1);
}
}
}

BIN
MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.dll

diff.bin_not_shown

BIN
MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.pdb

diff.bin_not_shown

2
MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache

@ -1 +1 @@
533436dc4ebb032189320843d6e1e024aef4bca8
5eb8af853df6cefc73690046f1829a4a47fc69f4

BIN
MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csprojAssemblyReference.cache

diff.bin_not_shown

BIN
MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.dll

diff.bin_not_shown

BIN
MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.pdb

diff.bin_not_shown

42
Scripts/Read response as async.linq

@ -0,0 +1,42 @@
<Query Kind="Statements">
<Reference>&lt;RuntimeDirectory&gt;\System.Net.Http.dll</Reference>
<Namespace>System.Net.Http</Namespace>
<Namespace>System.Net.Http.Headers</Namespace>
<Namespace>System.Threading.Tasks</Namespace>
</Query>
string Token = "MDAxY2xvY2F0aW9uIHBvc3QuaHlydWxlLmNjCjAwMTNpZGVudGlmaWVyIGtleQowMDEwY2lkIGdlbiA9IDEKMDAyOWNpZCB1c2VyX2lkID0gQGNsYWlyZTpwb3N0Lmh5cnVsZS5jYwowMDE2Y2lkIHR5cGUgPSBhY2Nlc3MKMDAyMWNpZCBub25jZSA9IHVpcCw0Q0xXeno5RWVIemsKMDAyZnNpZ25hdHVyZSC-SU60mVgCMmO7leht6DEkzsRkjIMeQnuAbQzNLRemEgo";
string Url = "https://post.hyrule.cc/_matrix/client/r0/joined_rooms";
HttpClient client = new HttpClient();
string newUrl = Url + "?access_token=" + Token;
HttpResponseMessage response = await client.GetAsync(newUrl);
string result = "";
if (response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsStringAsync();
}
Console.WriteLine(result);
Console.WriteLine();
HttpClient client2 = new HttpClient();
client2.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token);
HttpResponseMessage response2 = await client2.GetAsync(Url);
string result2 = "";
if (response2.IsSuccessStatusCode)
{
result2 = await response2.Content.ReadAsStringAsync();
}
Console.WriteLine((int)response2.StatusCode + " : " + response2.StatusCode);
Console.WriteLine(result2);
Loading…
Cancel
Save