chore: add intro and accouncement chat icons (#2889)
This commit is contained in:
parent
fcc0a0f344
commit
3e12f6050c
2 changed files with 68 additions and 10 deletions
|
|
@ -1,3 +1,5 @@
|
|||
import 'package:fluffychat/config/app_config.dart';
|
||||
|
||||
class SpaceConstants {
|
||||
static const powerLevelOfAdmin = 100;
|
||||
static const languageToolPermissions = 1;
|
||||
|
|
@ -6,4 +8,16 @@ class SpaceConstants {
|
|||
static const String classCode = 'classcode';
|
||||
static const String introductionChatAlias = 'introductionChat';
|
||||
static const String announcementsChatAlias = 'announcementsChat';
|
||||
|
||||
static List<String> introChatIcons = [
|
||||
'${AppConfig.assetsBaseURL}/Introduction_1.jpg',
|
||||
'${AppConfig.assetsBaseURL}/Introduction_2.png',
|
||||
'${AppConfig.assetsBaseURL}/Introduction_3.jpg',
|
||||
];
|
||||
|
||||
static List<String> announcementChatIcons = [
|
||||
'${AppConfig.assetsBaseURL}/Announment_1.png',
|
||||
'${AppConfig.assetsBaseURL}/Announment_2.png',
|
||||
'${AppConfig.assetsBaseURL}/Announcement_3.jpg',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
import 'dart:math';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/chat/constants/default_power_level.dart';
|
||||
import 'package:fluffychat/pangea/common/constants/model_keys.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/spaces/constants/space_constants.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/space_code.dart';
|
||||
|
|
@ -66,6 +69,47 @@ extension SpacesClientExtension on Client {
|
|||
String introductionsName = "Introductions",
|
||||
String announcementsName = "Announcements",
|
||||
}) async {
|
||||
Uri? introChatUploadURL;
|
||||
Uri? announcementsChatUploadURL;
|
||||
|
||||
try {
|
||||
final random = Random();
|
||||
final introChatIconURL = SpaceConstants
|
||||
.introChatIcons[random.nextInt(SpaceConstants.introChatIcons.length)];
|
||||
final announcementsChatIconURL = SpaceConstants.announcementChatIcons[
|
||||
random.nextInt(SpaceConstants.announcementChatIcons.length)];
|
||||
|
||||
final introResponse = await http.get(Uri.parse(introChatIconURL));
|
||||
final introChatIcon = introResponse.bodyBytes;
|
||||
final intoChatIconFilename = Uri.encodeComponent(
|
||||
Uri.parse(introChatIconURL).pathSegments.last,
|
||||
);
|
||||
introChatUploadURL = await uploadContent(
|
||||
introChatIcon,
|
||||
filename: intoChatIconFilename,
|
||||
);
|
||||
|
||||
final announcementsResponse =
|
||||
await http.get(Uri.parse(announcementsChatIconURL));
|
||||
final announcementsChatIcon = announcementsResponse.bodyBytes;
|
||||
final announcementsChatIconFilename = Uri.encodeComponent(
|
||||
Uri.parse(announcementsChatIconURL).pathSegments.last,
|
||||
);
|
||||
announcementsChatUploadURL = await uploadContent(
|
||||
announcementsChatIcon,
|
||||
filename: announcementsChatIconFilename,
|
||||
);
|
||||
} catch (e, s) {
|
||||
ErrorHandler.logError(
|
||||
e: "Failed to upload space chat icons",
|
||||
s: s,
|
||||
data: {
|
||||
"error": e,
|
||||
"spaceId": space.id,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
final introChatFuture = createRoom(
|
||||
preset: CreateRoomPreset.publicChat,
|
||||
visibility: Visibility.private,
|
||||
|
|
@ -73,11 +117,11 @@ extension SpacesClientExtension on Client {
|
|||
roomAliasName:
|
||||
"${SpaceConstants.introductionChatAlias}_${space.id.localpart}",
|
||||
initialState: [
|
||||
// if (avatar != null)
|
||||
// StateEvent(
|
||||
// type: EventTypes.RoomAvatar,
|
||||
// content: {'url': avatarUrl.toString()},
|
||||
// ),
|
||||
if (introChatUploadURL != null)
|
||||
StateEvent(
|
||||
type: EventTypes.RoomAvatar,
|
||||
content: {'url': introChatUploadURL.toString()},
|
||||
),
|
||||
StateEvent(
|
||||
type: EventTypes.RoomPowerLevels,
|
||||
stateKey: '',
|
||||
|
|
@ -93,11 +137,11 @@ extension SpacesClientExtension on Client {
|
|||
roomAliasName:
|
||||
"${SpaceConstants.announcementsChatAlias}_${space.id.localpart}",
|
||||
initialState: [
|
||||
// if (avatar != null)
|
||||
// StateEvent(
|
||||
// type: EventTypes.RoomAvatar,
|
||||
// content: {'url': avatarUrl.toString()},
|
||||
// ),
|
||||
if (announcementsChatUploadURL != null)
|
||||
StateEvent(
|
||||
type: EventTypes.RoomAvatar,
|
||||
content: {'url': announcementsChatUploadURL.toString()},
|
||||
),
|
||||
StateEvent(
|
||||
type: EventTypes.RoomPowerLevels,
|
||||
stateKey: '',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue