Add invite
This commit is contained in:
parent
3eb61e3107
commit
b8fd5ee1a9
5 changed files with 32 additions and 15 deletions
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
|
@ -17,6 +17,8 @@
|
||||||
"nexusbot",
|
"nexusbot",
|
||||||
"--adminRoom",
|
"--adminRoom",
|
||||||
"#admins:federated.nexus",
|
"#admins:federated.nexus",
|
||||||
|
"--inviteTo",
|
||||||
|
"#community:federated.nexus",
|
||||||
"--successUri",
|
"--successUri",
|
||||||
"https://federated.nexus/success",
|
"https://federated.nexus/success",
|
||||||
"--botPasswordFile",
|
"--botPasswordFile",
|
||||||
|
|
|
@ -25,7 +25,8 @@ void main(List<String> argsRaw) async {
|
||||||
..addOption("mailName", mandatory: true)
|
..addOption("mailName", mandatory: true)
|
||||||
..addOption("mailDomain", mandatory: true)
|
..addOption("mailDomain", mandatory: true)
|
||||||
..addOption("smtpPasswordFile", mandatory: true)
|
..addOption("smtpPasswordFile", mandatory: true)
|
||||||
..addOption("botPasswordFile", mandatory: true);
|
..addOption("botPasswordFile", mandatory: true)
|
||||||
|
..addOption("inviteTo");
|
||||||
|
|
||||||
final container = ProviderContainer();
|
final container = ProviderContainer();
|
||||||
container
|
container
|
||||||
|
@ -103,6 +104,14 @@ If you have any issues, reply to this email.""",
|
||||||
);
|
);
|
||||||
await event.room.redactEvent(reactionEvent!);
|
await event.room.redactEvent(reactionEvent!);
|
||||||
await event.room.sendReaction(event.eventId, "✉️ Sent!");
|
await event.room.sendReaction(event.eventId, "✉️ Sent!");
|
||||||
|
if (settings.inviteTo != null) {
|
||||||
|
await client.inviteUser(
|
||||||
|
settings.inviteTo!,
|
||||||
|
RegExp(
|
||||||
|
r"(?<userid>@[a-zA-Z0-9._-]+:[^\s]+)",
|
||||||
|
).firstMatch(event.body)!.namedGroup("userid")!,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ abstract class Settings with _$Settings {
|
||||||
required String adminRoom,
|
required String adminRoom,
|
||||||
required String email,
|
required String email,
|
||||||
required String mailName,
|
required String mailName,
|
||||||
|
required String? inviteTo,
|
||||||
required String mailDomain,
|
required String mailDomain,
|
||||||
required String smtpPasswordFile,
|
required String smtpPasswordFile,
|
||||||
required String botPasswordFile,
|
required String botPasswordFile,
|
||||||
|
|
|
@ -16,7 +16,7 @@ T _$identity<T>(T value) => value;
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
mixin _$Settings {
|
mixin _$Settings {
|
||||||
|
|
||||||
String get socket; Uri get homeserver; Uri get successUri; String get name; String get adminName; String get adminRoom; String get email; String get mailName; String get mailDomain; String get smtpPasswordFile; String get botPasswordFile;
|
String get socket; Uri get homeserver; Uri get successUri; String get name; String get adminName; String get adminRoom; String get email; String get mailName; String? get inviteTo; String get mailDomain; String get smtpPasswordFile; String get botPasswordFile;
|
||||||
/// Create a copy of Settings
|
/// Create a copy of Settings
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
@ -29,16 +29,16 @@ $SettingsCopyWith<Settings> get copyWith => _$SettingsCopyWithImpl<Settings>(thi
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) {
|
bool operator ==(Object other) {
|
||||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is Settings&&(identical(other.socket, socket) || other.socket == socket)&&(identical(other.homeserver, homeserver) || other.homeserver == homeserver)&&(identical(other.successUri, successUri) || other.successUri == successUri)&&(identical(other.name, name) || other.name == name)&&(identical(other.adminName, adminName) || other.adminName == adminName)&&(identical(other.adminRoom, adminRoom) || other.adminRoom == adminRoom)&&(identical(other.email, email) || other.email == email)&&(identical(other.mailName, mailName) || other.mailName == mailName)&&(identical(other.mailDomain, mailDomain) || other.mailDomain == mailDomain)&&(identical(other.smtpPasswordFile, smtpPasswordFile) || other.smtpPasswordFile == smtpPasswordFile)&&(identical(other.botPasswordFile, botPasswordFile) || other.botPasswordFile == botPasswordFile));
|
return identical(this, other) || (other.runtimeType == runtimeType&&other is Settings&&(identical(other.socket, socket) || other.socket == socket)&&(identical(other.homeserver, homeserver) || other.homeserver == homeserver)&&(identical(other.successUri, successUri) || other.successUri == successUri)&&(identical(other.name, name) || other.name == name)&&(identical(other.adminName, adminName) || other.adminName == adminName)&&(identical(other.adminRoom, adminRoom) || other.adminRoom == adminRoom)&&(identical(other.email, email) || other.email == email)&&(identical(other.mailName, mailName) || other.mailName == mailName)&&(identical(other.inviteTo, inviteTo) || other.inviteTo == inviteTo)&&(identical(other.mailDomain, mailDomain) || other.mailDomain == mailDomain)&&(identical(other.smtpPasswordFile, smtpPasswordFile) || other.smtpPasswordFile == smtpPasswordFile)&&(identical(other.botPasswordFile, botPasswordFile) || other.botPasswordFile == botPasswordFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType,socket,homeserver,successUri,name,adminName,adminRoom,email,mailName,mailDomain,smtpPasswordFile,botPasswordFile);
|
int get hashCode => Object.hash(runtimeType,socket,homeserver,successUri,name,adminName,adminRoom,email,mailName,inviteTo,mailDomain,smtpPasswordFile,botPasswordFile);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Settings(socket: $socket, homeserver: $homeserver, successUri: $successUri, name: $name, adminName: $adminName, adminRoom: $adminRoom, email: $email, mailName: $mailName, mailDomain: $mailDomain, smtpPasswordFile: $smtpPasswordFile, botPasswordFile: $botPasswordFile)';
|
return 'Settings(socket: $socket, homeserver: $homeserver, successUri: $successUri, name: $name, adminName: $adminName, adminRoom: $adminRoom, email: $email, mailName: $mailName, inviteTo: $inviteTo, mailDomain: $mailDomain, smtpPasswordFile: $smtpPasswordFile, botPasswordFile: $botPasswordFile)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ abstract mixin class $SettingsCopyWith<$Res> {
|
||||||
factory $SettingsCopyWith(Settings value, $Res Function(Settings) _then) = _$SettingsCopyWithImpl;
|
factory $SettingsCopyWith(Settings value, $Res Function(Settings) _then) = _$SettingsCopyWithImpl;
|
||||||
@useResult
|
@useResult
|
||||||
$Res call({
|
$Res call({
|
||||||
String socket, Uri homeserver, Uri successUri, String name, String adminName, String adminRoom, String email, String mailName, String mailDomain, String smtpPasswordFile, String botPasswordFile
|
String socket, Uri homeserver, Uri successUri, String name, String adminName, String adminRoom, String email, String mailName, String? inviteTo, String mailDomain, String smtpPasswordFile, String botPasswordFile
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ class _$SettingsCopyWithImpl<$Res>
|
||||||
|
|
||||||
/// Create a copy of Settings
|
/// Create a copy of Settings
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline') @override $Res call({Object? socket = null,Object? homeserver = null,Object? successUri = null,Object? name = null,Object? adminName = null,Object? adminRoom = null,Object? email = null,Object? mailName = null,Object? mailDomain = null,Object? smtpPasswordFile = null,Object? botPasswordFile = null,}) {
|
@pragma('vm:prefer-inline') @override $Res call({Object? socket = null,Object? homeserver = null,Object? successUri = null,Object? name = null,Object? adminName = null,Object? adminRoom = null,Object? email = null,Object? mailName = null,Object? inviteTo = freezed,Object? mailDomain = null,Object? smtpPasswordFile = null,Object? botPasswordFile = null,}) {
|
||||||
return _then(_self.copyWith(
|
return _then(_self.copyWith(
|
||||||
socket: null == socket ? _self.socket : socket // ignore: cast_nullable_to_non_nullable
|
socket: null == socket ? _self.socket : socket // ignore: cast_nullable_to_non_nullable
|
||||||
as String,homeserver: null == homeserver ? _self.homeserver : homeserver // ignore: cast_nullable_to_non_nullable
|
as String,homeserver: null == homeserver ? _self.homeserver : homeserver // ignore: cast_nullable_to_non_nullable
|
||||||
|
@ -76,7 +76,8 @@ as String,adminName: null == adminName ? _self.adminName : adminName // ignore:
|
||||||
as String,adminRoom: null == adminRoom ? _self.adminRoom : adminRoom // ignore: cast_nullable_to_non_nullable
|
as String,adminRoom: null == adminRoom ? _self.adminRoom : adminRoom // ignore: cast_nullable_to_non_nullable
|
||||||
as String,email: null == email ? _self.email : email // ignore: cast_nullable_to_non_nullable
|
as String,email: null == email ? _self.email : email // ignore: cast_nullable_to_non_nullable
|
||||||
as String,mailName: null == mailName ? _self.mailName : mailName // ignore: cast_nullable_to_non_nullable
|
as String,mailName: null == mailName ? _self.mailName : mailName // ignore: cast_nullable_to_non_nullable
|
||||||
as String,mailDomain: null == mailDomain ? _self.mailDomain : mailDomain // ignore: cast_nullable_to_non_nullable
|
as String,inviteTo: freezed == inviteTo ? _self.inviteTo : inviteTo // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,mailDomain: null == mailDomain ? _self.mailDomain : mailDomain // ignore: cast_nullable_to_non_nullable
|
||||||
as String,smtpPasswordFile: null == smtpPasswordFile ? _self.smtpPasswordFile : smtpPasswordFile // ignore: cast_nullable_to_non_nullable
|
as String,smtpPasswordFile: null == smtpPasswordFile ? _self.smtpPasswordFile : smtpPasswordFile // ignore: cast_nullable_to_non_nullable
|
||||||
as String,botPasswordFile: null == botPasswordFile ? _self.botPasswordFile : botPasswordFile // ignore: cast_nullable_to_non_nullable
|
as String,botPasswordFile: null == botPasswordFile ? _self.botPasswordFile : botPasswordFile // ignore: cast_nullable_to_non_nullable
|
||||||
as String,
|
as String,
|
||||||
|
@ -90,7 +91,7 @@ as String,
|
||||||
@JsonSerializable()
|
@JsonSerializable()
|
||||||
|
|
||||||
class _Settings implements Settings {
|
class _Settings implements Settings {
|
||||||
const _Settings({required this.socket, required this.homeserver, required this.successUri, required this.name, required this.adminName, required this.adminRoom, required this.email, required this.mailName, required this.mailDomain, required this.smtpPasswordFile, required this.botPasswordFile});
|
const _Settings({required this.socket, required this.homeserver, required this.successUri, required this.name, required this.adminName, required this.adminRoom, required this.email, required this.mailName, required this.inviteTo, required this.mailDomain, required this.smtpPasswordFile, required this.botPasswordFile});
|
||||||
factory _Settings.fromJson(Map<String, dynamic> json) => _$SettingsFromJson(json);
|
factory _Settings.fromJson(Map<String, dynamic> json) => _$SettingsFromJson(json);
|
||||||
|
|
||||||
@override final String socket;
|
@override final String socket;
|
||||||
|
@ -101,6 +102,7 @@ class _Settings implements Settings {
|
||||||
@override final String adminRoom;
|
@override final String adminRoom;
|
||||||
@override final String email;
|
@override final String email;
|
||||||
@override final String mailName;
|
@override final String mailName;
|
||||||
|
@override final String? inviteTo;
|
||||||
@override final String mailDomain;
|
@override final String mailDomain;
|
||||||
@override final String smtpPasswordFile;
|
@override final String smtpPasswordFile;
|
||||||
@override final String botPasswordFile;
|
@override final String botPasswordFile;
|
||||||
|
@ -118,16 +120,16 @@ Map<String, dynamic> toJson() {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) {
|
bool operator ==(Object other) {
|
||||||
return identical(this, other) || (other.runtimeType == runtimeType&&other is _Settings&&(identical(other.socket, socket) || other.socket == socket)&&(identical(other.homeserver, homeserver) || other.homeserver == homeserver)&&(identical(other.successUri, successUri) || other.successUri == successUri)&&(identical(other.name, name) || other.name == name)&&(identical(other.adminName, adminName) || other.adminName == adminName)&&(identical(other.adminRoom, adminRoom) || other.adminRoom == adminRoom)&&(identical(other.email, email) || other.email == email)&&(identical(other.mailName, mailName) || other.mailName == mailName)&&(identical(other.mailDomain, mailDomain) || other.mailDomain == mailDomain)&&(identical(other.smtpPasswordFile, smtpPasswordFile) || other.smtpPasswordFile == smtpPasswordFile)&&(identical(other.botPasswordFile, botPasswordFile) || other.botPasswordFile == botPasswordFile));
|
return identical(this, other) || (other.runtimeType == runtimeType&&other is _Settings&&(identical(other.socket, socket) || other.socket == socket)&&(identical(other.homeserver, homeserver) || other.homeserver == homeserver)&&(identical(other.successUri, successUri) || other.successUri == successUri)&&(identical(other.name, name) || other.name == name)&&(identical(other.adminName, adminName) || other.adminName == adminName)&&(identical(other.adminRoom, adminRoom) || other.adminRoom == adminRoom)&&(identical(other.email, email) || other.email == email)&&(identical(other.mailName, mailName) || other.mailName == mailName)&&(identical(other.inviteTo, inviteTo) || other.inviteTo == inviteTo)&&(identical(other.mailDomain, mailDomain) || other.mailDomain == mailDomain)&&(identical(other.smtpPasswordFile, smtpPasswordFile) || other.smtpPasswordFile == smtpPasswordFile)&&(identical(other.botPasswordFile, botPasswordFile) || other.botPasswordFile == botPasswordFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType,socket,homeserver,successUri,name,adminName,adminRoom,email,mailName,mailDomain,smtpPasswordFile,botPasswordFile);
|
int get hashCode => Object.hash(runtimeType,socket,homeserver,successUri,name,adminName,adminRoom,email,mailName,inviteTo,mailDomain,smtpPasswordFile,botPasswordFile);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'Settings(socket: $socket, homeserver: $homeserver, successUri: $successUri, name: $name, adminName: $adminName, adminRoom: $adminRoom, email: $email, mailName: $mailName, mailDomain: $mailDomain, smtpPasswordFile: $smtpPasswordFile, botPasswordFile: $botPasswordFile)';
|
return 'Settings(socket: $socket, homeserver: $homeserver, successUri: $successUri, name: $name, adminName: $adminName, adminRoom: $adminRoom, email: $email, mailName: $mailName, inviteTo: $inviteTo, mailDomain: $mailDomain, smtpPasswordFile: $smtpPasswordFile, botPasswordFile: $botPasswordFile)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,7 +140,7 @@ abstract mixin class _$SettingsCopyWith<$Res> implements $SettingsCopyWith<$Res>
|
||||||
factory _$SettingsCopyWith(_Settings value, $Res Function(_Settings) _then) = __$SettingsCopyWithImpl;
|
factory _$SettingsCopyWith(_Settings value, $Res Function(_Settings) _then) = __$SettingsCopyWithImpl;
|
||||||
@override @useResult
|
@override @useResult
|
||||||
$Res call({
|
$Res call({
|
||||||
String socket, Uri homeserver, Uri successUri, String name, String adminName, String adminRoom, String email, String mailName, String mailDomain, String smtpPasswordFile, String botPasswordFile
|
String socket, Uri homeserver, Uri successUri, String name, String adminName, String adminRoom, String email, String mailName, String? inviteTo, String mailDomain, String smtpPasswordFile, String botPasswordFile
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,7 +157,7 @@ class __$SettingsCopyWithImpl<$Res>
|
||||||
|
|
||||||
/// Create a copy of Settings
|
/// Create a copy of Settings
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override @pragma('vm:prefer-inline') $Res call({Object? socket = null,Object? homeserver = null,Object? successUri = null,Object? name = null,Object? adminName = null,Object? adminRoom = null,Object? email = null,Object? mailName = null,Object? mailDomain = null,Object? smtpPasswordFile = null,Object? botPasswordFile = null,}) {
|
@override @pragma('vm:prefer-inline') $Res call({Object? socket = null,Object? homeserver = null,Object? successUri = null,Object? name = null,Object? adminName = null,Object? adminRoom = null,Object? email = null,Object? mailName = null,Object? inviteTo = freezed,Object? mailDomain = null,Object? smtpPasswordFile = null,Object? botPasswordFile = null,}) {
|
||||||
return _then(_Settings(
|
return _then(_Settings(
|
||||||
socket: null == socket ? _self.socket : socket // ignore: cast_nullable_to_non_nullable
|
socket: null == socket ? _self.socket : socket // ignore: cast_nullable_to_non_nullable
|
||||||
as String,homeserver: null == homeserver ? _self.homeserver : homeserver // ignore: cast_nullable_to_non_nullable
|
as String,homeserver: null == homeserver ? _self.homeserver : homeserver // ignore: cast_nullable_to_non_nullable
|
||||||
|
@ -165,7 +167,8 @@ as String,adminName: null == adminName ? _self.adminName : adminName // ignore:
|
||||||
as String,adminRoom: null == adminRoom ? _self.adminRoom : adminRoom // ignore: cast_nullable_to_non_nullable
|
as String,adminRoom: null == adminRoom ? _self.adminRoom : adminRoom // ignore: cast_nullable_to_non_nullable
|
||||||
as String,email: null == email ? _self.email : email // ignore: cast_nullable_to_non_nullable
|
as String,email: null == email ? _self.email : email // ignore: cast_nullable_to_non_nullable
|
||||||
as String,mailName: null == mailName ? _self.mailName : mailName // ignore: cast_nullable_to_non_nullable
|
as String,mailName: null == mailName ? _self.mailName : mailName // ignore: cast_nullable_to_non_nullable
|
||||||
as String,mailDomain: null == mailDomain ? _self.mailDomain : mailDomain // ignore: cast_nullable_to_non_nullable
|
as String,inviteTo: freezed == inviteTo ? _self.inviteTo : inviteTo // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String?,mailDomain: null == mailDomain ? _self.mailDomain : mailDomain // ignore: cast_nullable_to_non_nullable
|
||||||
as String,smtpPasswordFile: null == smtpPasswordFile ? _self.smtpPasswordFile : smtpPasswordFile // ignore: cast_nullable_to_non_nullable
|
as String,smtpPasswordFile: null == smtpPasswordFile ? _self.smtpPasswordFile : smtpPasswordFile // ignore: cast_nullable_to_non_nullable
|
||||||
as String,botPasswordFile: null == botPasswordFile ? _self.botPasswordFile : botPasswordFile // ignore: cast_nullable_to_non_nullable
|
as String,botPasswordFile: null == botPasswordFile ? _self.botPasswordFile : botPasswordFile // ignore: cast_nullable_to_non_nullable
|
||||||
as String,
|
as String,
|
||||||
|
|
|
@ -15,6 +15,7 @@ _Settings _$SettingsFromJson(Map<String, dynamic> json) => _Settings(
|
||||||
adminRoom: json['adminRoom'] as String,
|
adminRoom: json['adminRoom'] as String,
|
||||||
email: json['email'] as String,
|
email: json['email'] as String,
|
||||||
mailName: json['mailName'] as String,
|
mailName: json['mailName'] as String,
|
||||||
|
inviteTo: json['inviteTo'] as String?,
|
||||||
mailDomain: json['mailDomain'] as String,
|
mailDomain: json['mailDomain'] as String,
|
||||||
smtpPasswordFile: json['smtpPasswordFile'] as String,
|
smtpPasswordFile: json['smtpPasswordFile'] as String,
|
||||||
botPasswordFile: json['botPasswordFile'] as String,
|
botPasswordFile: json['botPasswordFile'] as String,
|
||||||
|
@ -29,6 +30,7 @@ Map<String, dynamic> _$SettingsToJson(_Settings instance) => <String, dynamic>{
|
||||||
'adminRoom': instance.adminRoom,
|
'adminRoom': instance.adminRoom,
|
||||||
'email': instance.email,
|
'email': instance.email,
|
||||||
'mailName': instance.mailName,
|
'mailName': instance.mailName,
|
||||||
|
'inviteTo': instance.inviteTo,
|
||||||
'mailDomain': instance.mailDomain,
|
'mailDomain': instance.mailDomain,
|
||||||
'smtpPasswordFile': instance.smtpPasswordFile,
|
'smtpPasswordFile': instance.smtpPasswordFile,
|
||||||
'botPasswordFile': instance.botPasswordFile,
|
'botPasswordFile': instance.botPasswordFile,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue