@@ -451,8 +451,11 @@ defmodule M51.MatrixClient.Poller do
451
451
state = M51.IrcConn.Supervisor . matrix_state ( sup_pid )
452
452
channel = M51.MatrixClient.State . room_irc_channel ( state , room_id )
453
453
member = M51.MatrixClient.State . room_member ( state , room_id , sender )
454
+ client = M51.IrcConn.Supervisor . matrix_client ( sup_pid )
454
455
send = make_send_function ( sup_pid , event , write )
455
456
457
+ homeserver = M51.MatrixClient.Client . hostname ( client )
458
+
456
459
tags = % { "account" => sender }
457
460
458
461
# TODO: dedup this with m.reaction handler
@@ -498,7 +501,7 @@ defmodule M51.MatrixClient.Poller do
498
501
body
499
502
end
500
503
501
- { "PRIVMSG" , M51.Format . matrix2irc ( formatted_body ) || body }
504
+ { "PRIVMSG" , M51.Format . matrix2irc ( formatted_body , homeserver ) || body }
502
505
503
506
% { "msgtype" => "m.text" , "body" => body } when is_binary ( body ) ->
504
507
body =
@@ -522,7 +525,8 @@ defmodule M51.MatrixClient.Poller do
522
525
"formatted_body" => formatted_body ,
523
526
"body" => body
524
527
} ->
525
- { "PRIVMSG" , "\x01 ACTION " <> ( M51.Format . matrix2irc ( formatted_body ) || body ) <> "\x01 " }
528
+ { "PRIVMSG" ,
529
+ "\x01 ACTION " <> ( M51.Format . matrix2irc ( formatted_body , homeserver ) || body ) <> "\x01 " }
526
530
527
531
% { "msgtype" => "m.emote" , "body" => body } when is_binary ( body ) ->
528
532
# TODO: ditto
@@ -534,7 +538,7 @@ defmodule M51.MatrixClient.Poller do
534
538
"formatted_body" => formatted_body ,
535
539
"body" => body
536
540
} ->
537
- { "NOTICE" , M51.Format . matrix2irc ( formatted_body ) || body }
541
+ { "NOTICE" , M51.Format . matrix2irc ( formatted_body , homeserver ) || body }
538
542
539
543
% { "msgtype" => "m.notice" , "body" => body } when is_binary ( body ) ->
540
544
# TODO: ditto
@@ -543,38 +547,39 @@ defmodule M51.MatrixClient.Poller do
543
547
% { "msgtype" => "m.image" , "body" => body , "url" => url , "filename" => filename }
544
548
when is_binary ( body ) and is_binary ( url ) and is_binary ( filename ) ->
545
549
if M51.Format.Matrix2Irc . useless_img_alt? ( body ) or body == filename do
546
- { "PRIVMSG" , M51.Format.Matrix2Irc . format_url ( url , filename ) }
550
+ { "PRIVMSG" , M51.Format.Matrix2Irc . format_url ( url , homeserver , filename ) }
547
551
else
548
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , filename ) }
552
+ { "PRIVMSG" ,
553
+ body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver , filename ) }
549
554
end
550
555
551
556
% { "msgtype" => "m.image" , "body" => body , "url" => url }
552
557
when is_binary ( body ) and is_binary ( url ) ->
553
558
if M51.Format.Matrix2Irc . useless_img_alt? ( body ) do
554
- { "PRIVMSG" , M51.Format.Matrix2Irc . format_url ( url ) }
559
+ { "PRIVMSG" , M51.Format.Matrix2Irc . format_url ( url , homeserver ) }
555
560
else
556
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url ) }
561
+ { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver ) }
557
562
end
558
563
559
564
% { "msgtype" => "m.file" , "body" => body , "url" => url , "filename" => filename }
560
565
when is_binary ( body ) and is_binary ( url ) and is_binary ( filename ) ->
561
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , filename ) }
566
+ { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver , filename ) }
562
567
563
568
% { "msgtype" => "m.file" , "body" => body , "url" => url }
564
569
when is_binary ( body ) and is_binary ( url ) ->
565
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url ) }
570
+ { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver ) }
566
571
567
572
% { "msgtype" => "m.audio" , "body" => body , "url" => url }
568
573
when is_binary ( body ) and is_binary ( url ) ->
569
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url ) }
574
+ { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver ) }
570
575
571
576
% { "msgtype" => "m.location" , "body" => body , "geo_uri" => geo_uri }
572
577
when is_binary ( body ) and is_binary ( geo_uri ) ->
573
578
{ "PRIVMSG" , body <> " (" <> geo_uri <> ")" }
574
579
575
580
% { "msgtype" => "m.video" , "body" => body , "url" => url }
576
581
when is_binary ( body ) and is_binary ( url ) ->
577
- { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url ) }
582
+ { "PRIVMSG" , body <> " " <> M51.Format.Matrix2Irc . format_url ( url , homeserver ) }
578
583
579
584
% { "body" => body } when is_binary ( body ) ->
580
585
# fallback
0 commit comments