Compare commits

...

2 Commits

Author SHA1 Message Date
a310f4190c MATRIX_SERVER configuration item is now a URL
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 29s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m32s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
2024-11-01 13:40:18 +11:00
6342fe28b2 Revert "Force posting to matrix to use IPv4 resolution"
This might not be required afterall
This reverts commit 881449a170.
2024-11-01 13:16:31 +11:00
3 changed files with 15 additions and 22 deletions

View File

@ -42,13 +42,13 @@ abstract class Base
case 'room': case 'room':
$room_alias = Http::withToken(config('matrix.as_token')) $room_alias = Http::withToken(config('matrix.as_token'))
->get(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.canonical_alias',config('matrix.server'),$this->room_id)); ->get(sprintf('%s/_matrix/client/v3/rooms/%s/state/m.room.canonical_alias',config('matrix.server'),$this->room_id));
return $room_alias->json('alias',$this->room_id); return $room_alias->json('alias',$this->room_id);
case 'topic': case 'topic':
$subject = Http::withToken(config('matrix.as_token')) $subject = Http::withToken(config('matrix.as_token'))
->get(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$this->room_id)); ->get(sprintf('%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$this->room_id));
return $subject->json('topic','Message from Matrix'); return $subject->json('topic','Message from Matrix');

View File

@ -43,21 +43,15 @@ class Echomail extends Matrix
$this->o->fftn->point_id, $this->o->fftn->point_id,
); );
$user = sprintf('@%s:%s',$username,config('matrix.server')); $user = sprintf('@%s:%s',$username,preg_replace('#^(http[s]?://)?([^:]+)(:[0-9]+)?$#','$2',config('matrix.server')));
// @todo We need to force IP4 as running clrghouz in a container without a proper IPv6 address is problematic
$matrix = Http::withToken(config('matrix.as_token'))
->withOptions([
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
// Set topic if it is different: // Set topic if it is different:
$subject = $matrix $subject = Http::withToken(config('matrix.as_token'))
->get(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room)); ->get(sprintf('%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room));
if (($x=preg_replace('/^RE:\s*/i','',$this->o->subject)) !== $subject->json('topic','Message from Matrix')) { if (($x=preg_replace('/^RE:\s*/i','',$this->o->subject)) !== $subject->json('topic','Message from Matrix')) {
$topic = $matrix $topic = Http::withToken(config('matrix.as_token'))
->put(sprintf('https://%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room),[ ->put(sprintf('%s/_matrix/client/v3/rooms/%s/state/m.room.topic',config('matrix.server'),$room),[
'topic'=>$x, 'topic'=>$x,
]); ]);
@ -67,9 +61,9 @@ class Echomail extends Matrix
$omsg = preg_replace("/\r---.*$/U",'',$this->o->msg); $omsg = preg_replace("/\r---.*$/U",'',$this->o->msg);
$msg = $matrix $msg = Http::withToken(config('matrix.as_token'))
->withQueryParameters(['user_id'=>$user]) ->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/send/m.room.message',config('matrix.server'),$room),[ ->post(sprintf('%s/_matrix/client/v3/rooms/%s/send/m.room.message',config('matrix.server'),$room),[
'msgtype'=>'m.text', 'msgtype'=>'m.text',
'format'=>'org.matrix.custom.html', 'format'=>'org.matrix.custom.html',
'body'=>mb_convert_encoding(str_replace("\r","\n",$omsg),'UTF-8','IBM850'), 'body'=>mb_convert_encoding(str_replace("\r","\n",$omsg),'UTF-8','IBM850'),
@ -87,8 +81,8 @@ class Echomail extends Matrix
// If the user doesnt exist in matrix yet // If the user doesnt exist in matrix yet
if (str_starts_with($msg->json('error'),'Application service has not registered this user')) { if (str_starts_with($msg->json('error'),'Application service has not registered this user')) {
// Register user // Register user
$msg = $matrix $msg = Http::withToken(config('matrix.as_token'))
->post(sprintf('https://%s/_matrix/client/v3/register',config('matrix.server')),[ ->post(sprintf('%s/_matrix/client/v3/register',config('matrix.server')),[
'type'=>'m.login.application_service', 'type'=>'m.login.application_service',
'username'=>$username, 'username'=>$username,
]); ]);
@ -100,9 +94,9 @@ class Echomail extends Matrix
// @todo Test that the user has been invited // @todo Test that the user has been invited
// Invite user // Invite user
$msg = $matrix $msg = Http::withToken(config('matrix.as_token'))
//->withQueryParameters(['user_id'=>$user]) //->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/invite',config('matrix.server'),$room),[ ->post(sprintf('%s/_matrix/client/v3/rooms/%s/invite',config('matrix.server'),$room),[
'user_id'=>$user, 'user_id'=>$user,
]); ]);
@ -112,9 +106,9 @@ class Echomail extends Matrix
} }
// Join as user // Join as user
$msg = $matrix $msg = Http::withToken(config('matrix.as_token'))
->withQueryParameters(['user_id'=>$user]) ->withQueryParameters(['user_id'=>$user])
->post(sprintf('https://%s/_matrix/client/v3/rooms/%s/join',config('matrix.server'),$room),[ ->post(sprintf('%s/_matrix/client/v3/rooms/%s/join',config('matrix.server'),$room),[
'user_id'=>$user, 'user_id'=>$user,
]); ]);

View File

@ -7,7 +7,6 @@
"require": { "require": {
"php": "^8.2|8.3", "php": "^8.2|8.3",
"ext-bz2": "*", "ext-bz2": "*",
"ext-curl": "*",
"ext-pcntl": "*", "ext-pcntl": "*",
"ext-sockets": "*", "ext-sockets": "*",
"ext-zip": "*", "ext-zip": "*",