mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 13:33:32 +00:00
Merge branch 'bluesky-reshare-update' into 'main'
Allow Bluesky post resharing for Friendica versions 2024.08 and higher See merge request mysocialportal/relatica!64
This commit is contained in:
commit
bde307ab8d
5 changed files with 22 additions and 7 deletions
|
@ -19,6 +19,8 @@
|
||||||
only the "My Posts" timeline and no bottom navigation bar. So one can't get to search, notifications,
|
only the "My Posts" timeline and no bottom navigation bar. So one can't get to search, notifications,
|
||||||
contacts, etc. One can create new posts, comments, and edits to those things
|
contacts, etc. One can create new posts, comments, and edits to those things
|
||||||
though. ([Feature #95](https://gitlab.com/mysocialportal/relatica/-/issues/95))
|
though. ([Feature #95](https://gitlab.com/mysocialportal/relatica/-/issues/95))
|
||||||
|
* Add resharing of Bluesky posts if connected to a Friendica server running 2024.08 or
|
||||||
|
later. ([Feature #107](https://gitlab.com/mysocialportal/relatica/-/issues/107))
|
||||||
* Shows the Circles, Groups, and Channels timelines if connected to a Friendica server running 2024.08 or
|
* Shows the Circles, Groups, and Channels timelines if connected to a Friendica server running 2024.08 or
|
||||||
later.([Feature #108](https://gitlab.com/mysocialportal/relatica/-/issues/108))
|
later.([Feature #108](https://gitlab.com/mysocialportal/relatica/-/issues/108))
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ class FriendicaVersion implements Comparable<FriendicaVersion> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'FriendicaVersion{releaseDate: $releaseDate, extra: $extra}';
|
return '${releaseDate.year}.${releaseDate.month}$extra';
|
||||||
}
|
}
|
||||||
|
|
||||||
String toVersionString() {
|
String toVersionString() {
|
||||||
|
@ -156,6 +156,8 @@ final FriendicaVersion v2023_04_01 = FriendicaVersion(
|
||||||
);
|
);
|
||||||
final FriendicaVersion v2023_05 = FriendicaVersion(DateTime(2023, 05));
|
final FriendicaVersion v2023_05 = FriendicaVersion(DateTime(2023, 05));
|
||||||
final FriendicaVersion v2023_09 = FriendicaVersion(DateTime(2023, 09));
|
final FriendicaVersion v2023_09 = FriendicaVersion(DateTime(2023, 09));
|
||||||
|
final FriendicaVersion v2024_03 = FriendicaVersion(DateTime(2024, 03));
|
||||||
|
final FriendicaVersion v2024_08 = FriendicaVersion(DateTime(2024, 08));
|
||||||
|
|
||||||
final knownFriendicaVersions = [
|
final knownFriendicaVersions = [
|
||||||
// 2018 Versions
|
// 2018 Versions
|
||||||
|
@ -196,6 +198,10 @@ final knownFriendicaVersions = [
|
||||||
v2023_04_01,
|
v2023_04_01,
|
||||||
v2023_05,
|
v2023_05,
|
||||||
v2023_09,
|
v2023_09,
|
||||||
|
|
||||||
|
// 2024 Versions
|
||||||
|
v2024_03,
|
||||||
|
v2024_08,
|
||||||
];
|
];
|
||||||
|
|
||||||
FriendicaVersion latestVersion() => knownFriendicaVersions.last;
|
FriendicaVersion latestVersion() => knownFriendicaVersions.last;
|
||||||
|
|
|
@ -44,7 +44,7 @@ class NetworkCapabilitiesSettings {
|
||||||
KnownNetworks.bluesky => NetworkCapabilitiesItem(
|
KnownNetworks.bluesky => NetworkCapabilitiesItem(
|
||||||
network: e,
|
network: e,
|
||||||
react: true,
|
react: true,
|
||||||
reshare: false,
|
reshare: true,
|
||||||
comment: true,
|
comment: true,
|
||||||
),
|
),
|
||||||
KnownNetworks.threads => NetworkCapabilitiesItem(
|
KnownNetworks.threads => NetworkCapabilitiesItem(
|
||||||
|
|
|
@ -9,6 +9,7 @@ import '../models/friendica_version.dart';
|
||||||
import '../models/friendica_version_requirement.dart';
|
import '../models/friendica_version_requirement.dart';
|
||||||
|
|
||||||
enum RelaticaFeatures {
|
enum RelaticaFeatures {
|
||||||
|
blueskyReshare('Resharing Bluesky Posts'),
|
||||||
diasporaReshare('Resharing Diaspora Posts'),
|
diasporaReshare('Resharing Diaspora Posts'),
|
||||||
directMessageCreation('Direct message creation with OAuth login'),
|
directMessageCreation('Direct message creation with OAuth login'),
|
||||||
postSpoilerText('Spoiler Text on Posts'),
|
postSpoilerText('Spoiler Text on Posts'),
|
||||||
|
@ -73,6 +74,7 @@ class FriendicaVersionChecker {
|
||||||
|
|
||||||
static final featureVersionRequirement =
|
static final featureVersionRequirement =
|
||||||
<RelaticaFeatures, FriendicaVersionRequirement>{
|
<RelaticaFeatures, FriendicaVersionRequirement>{
|
||||||
|
RelaticaFeatures.blueskyReshare: FriendicaVersionRequirement(v2024_08),
|
||||||
RelaticaFeatures.diasporaReshare: FriendicaVersionRequirement(v2023_04),
|
RelaticaFeatures.diasporaReshare: FriendicaVersionRequirement(v2023_04),
|
||||||
RelaticaFeatures.directMessageCreation: FriendicaVersionRequirement(
|
RelaticaFeatures.directMessageCreation: FriendicaVersionRequirement(
|
||||||
v2023_04,
|
v2023_04,
|
||||||
|
|
|
@ -2,6 +2,7 @@ import '../globals.dart';
|
||||||
import '../models/timeline_entry.dart';
|
import '../models/timeline_entry.dart';
|
||||||
import '../models/timeline_network_info.dart';
|
import '../models/timeline_network_info.dart';
|
||||||
import '../models/visibility.dart';
|
import '../models/visibility.dart';
|
||||||
|
import '../services/feature_version_checker.dart';
|
||||||
import '../services/setting_service.dart';
|
import '../services/setting_service.dart';
|
||||||
import 'known_network_extensions.dart';
|
import 'known_network_extensions.dart';
|
||||||
|
|
||||||
|
@ -61,11 +62,15 @@ extension InteractionAvailabilityExtension on TimelineEntry {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (networkInfo.network == KnownNetworks.bluesky) {
|
if (networkInfo.network == KnownNetworks.bluesky) {
|
||||||
return const InteractionCapabilityResult(
|
final result = getIt<FriendicaVersionChecker>()
|
||||||
canDo: false,
|
.canUseFeatureResult(RelaticaFeatures.blueskyReshare);
|
||||||
reason:
|
|
||||||
"Resharing of Bluesky posts through the API isn't supported by Friendica.",
|
if (result.isFailure) {
|
||||||
);
|
return InteractionCapabilityResult(
|
||||||
|
canDo: false,
|
||||||
|
reason: result.error.message,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final settingsService = getIt<SettingsService>();
|
final settingsService = getIt<SettingsService>();
|
||||||
|
|
Loading…
Reference in a new issue