Merge branch 'prep-release-1.0' into 'main'
Prep release 1.0 See merge request mysocialportal/fediverse-archiving-tools!7
Before Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 810 B |
BIN
fediverse_archive_browser/assets/images/fediverse_archive_reader_icon_64.png
Executable file
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 419 B |
|
@ -10,14 +10,14 @@ import 'src/settings/settings_controller.dart';
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
final logPath = await setupLogging();
|
final logPath = await setupLogging();
|
||||||
Logger.root.info('Starting Friendica Archive Browser');
|
Logger.root.info('Starting Fediverse Archive Browser');
|
||||||
final settingsController = SettingsController(logPath: logPath);
|
final settingsController = SettingsController(logPath: logPath);
|
||||||
await settingsController.loadSettings();
|
await settingsController.loadSettings();
|
||||||
runApp(FriendicaArchiveBrowser(settingsController: settingsController));
|
runApp(FediverseArchiveBrowser(settingsController: settingsController));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> setupLogging() async {
|
Future<String> setupLogging() async {
|
||||||
final logFilePath = await getTempFile('friendica_archive_browser_', '.log');
|
final logFilePath = await getTempFile('fediverse_archive_browser', '.log');
|
||||||
final logFile = File(logFilePath);
|
final logFile = File(logFilePath);
|
||||||
Logger.root.level = Level.ALL;
|
Logger.root.level = Level.ALL;
|
||||||
Logger.root.onRecord.listen((event) {
|
Logger.root.onRecord.listen((event) {
|
||||||
|
|
|
@ -11,10 +11,10 @@ import 'home.dart';
|
||||||
import 'settings/settings_controller.dart';
|
import 'settings/settings_controller.dart';
|
||||||
|
|
||||||
/// The Widget that configures your application.
|
/// The Widget that configures your application.
|
||||||
class FriendicaArchiveBrowser extends StatelessWidget {
|
class FediverseArchiveBrowser extends StatelessWidget {
|
||||||
static const minAppSize = Size(915, 700);
|
static const minAppSize = Size(915, 700);
|
||||||
|
|
||||||
const FriendicaArchiveBrowser({
|
const FediverseArchiveBrowser({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.settingsController,
|
required this.settingsController,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
@ -44,8 +44,8 @@ class FriendicaArchiveBrowser extends StatelessWidget {
|
||||||
],
|
],
|
||||||
onGenerateTitle: (BuildContext context) =>
|
onGenerateTitle: (BuildContext context) =>
|
||||||
AppLocalizations.of(context)!.appTitle,
|
AppLocalizations.of(context)!.appTitle,
|
||||||
theme: FriendicaArchiveBrowserTheme.light,
|
theme: FediverseArchiveBrowserTheme.light,
|
||||||
darkTheme: FriendicaArchiveBrowserTheme.dark,
|
darkTheme: FediverseArchiveBrowserTheme.dark,
|
||||||
themeMode: settingsController.themeMode,
|
themeMode: settingsController.themeMode,
|
||||||
scrollBehavior: AppScrollingBehavior(),
|
scrollBehavior: AppScrollingBehavior(),
|
||||||
home: MultiProvider(
|
home: MultiProvider(
|
||||||
|
|
|
@ -44,7 +44,7 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
if (mediaAttachment.explicitType == AttachmentMediaType.video) {
|
if (mediaAttachment.explicitType == AttachmentMediaType.video) {
|
||||||
final title = "Video (click to play): " + mediaAttachment.title;
|
final title = "Video (click to play): " + mediaAttachment.title;
|
||||||
final thumbnailImageResult = _uriToImage(
|
final thumbnailImageResult = _uriToImage(
|
||||||
mediaAttachment.thumbnailUri, archiveService.pathMappingService,
|
mediaAttachment.thumbnailUri.toString(), archiveService.pathMappingService,
|
||||||
imageTypeName: 'thumbnail image');
|
imageTypeName: 'thumbnail image');
|
||||||
if (thumbnailImageResult.image != null) {
|
if (thumbnailImageResult.image != null) {
|
||||||
return _createFinalWidget(
|
return _createFinalWidget(
|
||||||
|
@ -110,13 +110,13 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_ImageAndPathResult _uriToImage(Uri uri, PathMappingService mapper,
|
_ImageAndPathResult _uriToImage(String uri, PathMappingService mapper,
|
||||||
{String imageTypeName = 'image'}) {
|
{String imageTypeName = 'image'}) {
|
||||||
if (uri.toString().startsWith('https://interncache')) {
|
if (uri.startsWith('https://interncache')) {
|
||||||
return _ImageAndPathResult.none();
|
return _ImageAndPathResult.none();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uri.scheme.startsWith('http')) {
|
if (uri.startsWith('http')) {
|
||||||
final networkUrl = uri.toString();
|
final networkUrl = uri.toString();
|
||||||
try {
|
try {
|
||||||
return _ImageAndPathResult(Image.network(networkUrl), networkUrl);
|
return _ImageAndPathResult(Image.network(networkUrl), networkUrl);
|
||||||
|
@ -127,7 +127,7 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
return _ImageAndPathResult.none();
|
return _ImageAndPathResult.none();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uri.path.endsWith('mp4')) {
|
if (uri.endsWith('mp4')) {
|
||||||
return _ImageAndPathResult.none();
|
return _ImageAndPathResult.none();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,13 +171,13 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
return InkWell(onTap: onTap, child: imageWidget);
|
return InkWell(onTap: onTap, child: imageWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
Uri _calculatePath(ArchiveServiceProvider archiveService) {
|
String _calculatePath(ArchiveServiceProvider archiveService) {
|
||||||
final url = mediaAttachment.uri.toString();
|
final url = mediaAttachment.uri.toString();
|
||||||
String basePath = '';
|
String basePath = '';
|
||||||
if (url.startsWith('http')) {
|
if (url.startsWith('http')) {
|
||||||
final localCacheFile = archiveService.getImageByUrl(url);
|
final localCacheFile = archiveService.getImageByUrl(url);
|
||||||
if (localCacheFile.isFailure) {
|
if (localCacheFile.isFailure) {
|
||||||
return mediaAttachment.uri;
|
return mediaAttachment.uri.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
basePath = localCacheFile.value.localFilename;
|
basePath = localCacheFile.value.localFilename;
|
||||||
|
@ -185,7 +185,7 @@ class MediaWrapperComponent extends StatelessWidget {
|
||||||
basePath = mediaAttachment.uri.path;
|
basePath = mediaAttachment.uri.path;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Uri.parse(basePath);
|
return basePath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"appTitle": "Friendica Archive Browser",
|
"appTitle": "Fediverse Archive Browser",
|
||||||
"@appTitle": {
|
"@appTitle": {
|
||||||
"description": "A browser of Friendica Archive Folders"
|
"description": "A browser of Fediverse Archive Sets"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:fediverse_archive_browser/src/services/archive_service_provider.dart';
|
||||||
import 'package:file_picker/file_picker.dart';
|
import 'package:file_picker/file_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:fediverse_archive_browser/src/components/media_wrapper_component.dart';
|
import 'package:fediverse_archive_browser/src/components/media_wrapper_component.dart';
|
||||||
import 'package:fediverse_archive_browser/src/friendica/services/friendica_path_mapping_service.dart';
|
|
||||||
import 'package:fediverse_archive_browser/src/models/media_attachment.dart';
|
import 'package:fediverse_archive_browser/src/models/media_attachment.dart';
|
||||||
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
||||||
import 'package:fediverse_archive_browser/src/themes.dart';
|
import 'package:fediverse_archive_browser/src/themes.dart';
|
||||||
|
@ -71,7 +71,7 @@ class _MediaSlideShowScreenState extends State<MediaSlideShowScreen> {
|
||||||
final height = MediaQuery.of(context).size.height - toolBarHeight;
|
final height = MediaQuery.of(context).size.height - toolBarHeight;
|
||||||
|
|
||||||
return Theme(
|
return Theme(
|
||||||
data: FriendicaArchiveBrowserTheme.darkroom,
|
data: FediverseArchiveBrowserTheme.darkroom,
|
||||||
child: KeyboardListener(
|
child: KeyboardListener(
|
||||||
focusNode: FocusNode(),
|
focusNode: FocusNode(),
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
|
@ -155,11 +155,16 @@ class _MediaSlideShowScreenState extends State<MediaSlideShowScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _saveFile(BuildContext context) async {
|
Future<void> _saveFile(BuildContext context) async {
|
||||||
final pathMapper =
|
final archiveService =
|
||||||
Provider.of<FriendicaPathMappingService>(context, listen: false);
|
Provider.of<ArchiveServiceProvider>(context, listen: false);
|
||||||
|
|
||||||
final filename = media.uri.pathSegments.last;
|
final filename = media.uri.pathSegments.last;
|
||||||
final initialPath = pathMapper.toFullPath(media.uri.toFilePath());
|
final localPath = archiveService.getImageByUrl(media.uri.toString());
|
||||||
|
if (localPath.isFailure) {
|
||||||
|
SnackBarStatusBuilder.buildSnackbar(context, 'Unable to find original source file for: ${media.uri}');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final initialPath = archiveService.pathMappingService.toFullPath(localPath.value.localFilename);
|
||||||
final newPath = await FilePicker.platform.saveFile(
|
final newPath = await FilePicker.platform.saveFile(
|
||||||
dialogTitle: 'Export Image',
|
dialogTitle: 'Export Image',
|
||||||
fileName: filename,
|
fileName: filename,
|
||||||
|
|
|
@ -24,10 +24,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
||||||
_archiveService.connectionsManager;
|
_archiveService.connectionsManager;
|
||||||
|
|
||||||
ArchiveServiceProvider(this.settings) {
|
ArchiveServiceProvider(this.settings) {
|
||||||
_diasporaArchiveService = DiasporaArchiveService(
|
_buildArchiveServices();
|
||||||
pathMappingService: DiasporaPathMappingService(settings));
|
|
||||||
_friendicaArchiveService = FriendicaArchiveService(
|
|
||||||
pathMappingService: FriendicaPathMappingService(settings));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String get ownersName => _archiveService.ownersName;
|
String get ownersName => _archiveService.ownersName;
|
||||||
|
@ -35,6 +32,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
||||||
void clearCaches() {
|
void clearCaches() {
|
||||||
_friendicaArchiveService.clearCaches();
|
_friendicaArchiveService.clearCaches();
|
||||||
_diasporaArchiveService.clearCaches();
|
_diasporaArchiveService.clearCaches();
|
||||||
|
_buildArchiveServices();
|
||||||
}
|
}
|
||||||
|
|
||||||
FutureResult<List<EntryTreeItem>, ExecError> getPosts() async {
|
FutureResult<List<EntryTreeItem>, ExecError> getPosts() async {
|
||||||
|
@ -53,6 +51,10 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
||||||
return _archiveService.getImageByUrl(url);
|
return _archiveService.getImageByUrl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
PathMappingService get pathMappingService =>
|
||||||
|
_archiveService.pathMappingService;
|
||||||
|
|
||||||
ArchiveService get _archiveService {
|
ArchiveService get _archiveService {
|
||||||
switch (settings.archiveType) {
|
switch (settings.archiveType) {
|
||||||
case ArchiveType.diaspora:
|
case ArchiveType.diaspora:
|
||||||
|
@ -64,7 +66,12 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
PathMappingService get pathMappingService =>
|
void _buildArchiveServices() {
|
||||||
_archiveService.pathMappingService;
|
_diasporaArchiveService = DiasporaArchiveService(
|
||||||
|
pathMappingService: DiasporaPathMappingService(settings));
|
||||||
|
_friendicaArchiveService = FriendicaArchiveService(
|
||||||
|
pathMappingService: FriendicaPathMappingService(settings));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,7 +178,7 @@ class _SettingsViewState extends State<SettingsView> {
|
||||||
controller: _folderPathController,
|
controller: _folderPathController,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText:
|
hintText:
|
||||||
'Root folder of the unzipped Friendica archive file',
|
'Root folder of the unzipped archive folder',
|
||||||
errorText: _invalidFolderString,
|
errorText: _invalidFolderString,
|
||||||
))),
|
))),
|
||||||
const SizedBox(width: 15),
|
const SizedBox(width: 15),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class FriendicaArchiveBrowserTheme {
|
class FediverseArchiveBrowserTheme {
|
||||||
static ThemeData dark = ThemeData.dark().copyWith(
|
static ThemeData dark = ThemeData.dark().copyWith(
|
||||||
primaryColor: Colors.white,
|
primaryColor: Colors.white,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(runner LANGUAGES CXX)
|
project(runner LANGUAGES CXX)
|
||||||
|
|
||||||
set(BINARY_NAME "friendica_archive_browser")
|
set(BINARY_NAME "fediverse_archive_browser")
|
||||||
set(APPLICATION_ID "social.myportal.friendica_archive_browser")
|
set(APPLICATION_ID "social.myportal.fediverse_archive_browser")
|
||||||
|
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
||||||
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
||||||
33CC10ED2044A3C60003C045 /* FriendicaArchiveBrowser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Friendica Archive Browser.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
33CC10ED2044A3C60003C045 /* fediverse_archive_browser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = fediverse_archive_browser.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
||||||
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
33CC10EE2044A3C60003C045 /* Products */ = {
|
33CC10EE2044A3C60003C045 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
33CC10ED2044A3C60003C045 /* FriendicaArchiveBrowser.app */,
|
33CC10ED2044A3C60003C045 /* fediverse_archive_browser.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -194,7 +194,7 @@
|
||||||
);
|
);
|
||||||
name = Runner;
|
name = Runner;
|
||||||
productName = Runner;
|
productName = Runner;
|
||||||
productReference = 33CC10ED2044A3C60003C045 /* FriendicaArchiveBrowser.app */;
|
productReference = 33CC10ED2044A3C60003C045 /* fediverse_archive_browser.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
|
@ -422,11 +422,13 @@
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEVELOPMENT_TEAM = T69YZGT58U;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = fediversearchivebrowser.myportal.social;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
};
|
};
|
||||||
|
@ -548,11 +550,13 @@
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerDebug.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerDebug.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEVELOPMENT_TEAM = T69YZGT58U;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = fediversearchivebrowser.myportal.social;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
@ -568,11 +572,13 @@
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEVELOPMENT_TEAM = T69YZGT58U;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = fediversearchivebrowser.myportal.social;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "FriendicaArchiveBrowser.app"
|
BuildableName = "fediverse_archive_browser.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "FriendicaArchiveBrowser.app"
|
BuildableName = "fediverse_archive_browser.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "FriendicaArchiveBrowser.app"
|
BuildableName = "fediverse_archive_browser.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
BuildableName = "FriendicaArchiveBrowser.app"
|
BuildableName = "fediverse_archive_browser.app"
|
||||||
BlueprintName = "Runner"
|
BlueprintName = "Runner"
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|
|
@ -3,61 +3,61 @@
|
||||||
{
|
{
|
||||||
"size" : "16x16",
|
"size" : "16x16",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_16.png",
|
"filename" : "fediverse_archive_reader_icon_16.png",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "16x16",
|
"size" : "16x16",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_32.png",
|
"filename" : "fediverse_archive_reader_icon_32.png",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "32x32",
|
"size" : "32x32",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_32.png",
|
"filename" : "fediverse_archive_reader_icon_32.png",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "32x32",
|
"size" : "32x32",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_64.png",
|
"filename" : "fediverse_archive_reader_icon_64.png",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "128x128",
|
"size" : "128x128",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_128.png",
|
"filename" : "fediverse_archive_reader_icon_128.png",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "128x128",
|
"size" : "128x128",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_256.png",
|
"filename" : "fediverse_archive_reader_icon_256.png",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "256x256",
|
"size" : "256x256",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_256.png",
|
"filename" : "fediverse_archive_reader_icon_256.png",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "256x256",
|
"size" : "256x256",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_512.png",
|
"filename" : "fediverse_archive_reader_icon_512.png",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "512x512",
|
"size" : "512x512",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_512.png",
|
"filename" : "fediverse_archive_reader_icon_512.png",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"size" : "512x512",
|
"size" : "512x512",
|
||||||
"idiom" : "mac",
|
"idiom" : "mac",
|
||||||
"filename" : "fba_app_icon_1024.png",
|
"filename" : "fediverse_archive_reader_icon_1024.png",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 479 B |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 762 B |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 630 B |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 2.7 KiB |
|
@ -13,7 +13,7 @@
|
||||||
</customObject>
|
</customObject>
|
||||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="friendica_archive_browser" customModuleProvider="target">
|
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="fediverse_archive_browser" customModuleProvider="target">
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
|
<outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
|
||||||
<outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
|
<outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
|
||||||
|
@ -326,7 +326,7 @@
|
||||||
</items>
|
</items>
|
||||||
<point key="canvasLocation" x="142" y="-258"/>
|
<point key="canvasLocation" x="142" y="-258"/>
|
||||||
</menu>
|
</menu>
|
||||||
<window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="friendica_archive_browser" customModuleProvider="target">
|
<window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="fediverse_archive_browser" customModuleProvider="target">
|
||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||||
<rect key="contentRect" x="0.0" y="175" width="915" height="700"/>
|
<rect key="contentRect" x="0.0" y="175" width="915" height="700"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="875"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="875"/>
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
// 'flutter create' template.
|
// 'flutter create' template.
|
||||||
|
|
||||||
// The application's name. By default this is also the title of the Flutter window.
|
// The application's name. By default this is also the title of the Flutter window.
|
||||||
PRODUCT_NAME = friendica_archive_browser
|
PRODUCT_NAME = fediverse_archive_browser
|
||||||
|
|
||||||
// The application's bundle identifier
|
// The application's bundle identifier
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = social.myportal.friendica_archive_browser
|
PRODUCT_BUNDLE_IDENTIFIER = fediversearchivebrowser.myportal.social
|
||||||
|
|
||||||
// The copyright displayed in application information
|
// The copyright displayed in application information
|
||||||
PRODUCT_COPYRIGHT = Copyright © 2021 Hank G. All rights reserved.
|
PRODUCT_COPYRIGHT = Copyright © 2022 My Social Portal All rights reserved.
|
||||||
|
|
|
@ -20,6 +20,12 @@
|
||||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||||
|
<key>INIntentsSupported</key>
|
||||||
|
<array>
|
||||||
|
<string>Intent</string>
|
||||||
|
</array>
|
||||||
|
<key>LSApplicationCategoryType</key>
|
||||||
|
<string>public.app-category.utilities</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
|
|
@ -4,7 +4,7 @@ description: An Archive Browser for various fediverse projects (Friendica, Diasp
|
||||||
# Prevent accidental publishing to pub.dev.
|
# Prevent accidental publishing to pub.dev.
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.1.3+1
|
version: 1.0.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.14.0 <3.0.0"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
cmake_minimum_required(VERSION 3.15)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
project(friendica_archive_browser LANGUAGES CXX)
|
project(fediverse_archive_browser LANGUAGES CXX)
|
||||||
|
|
||||||
set(BINARY_NAME "friendica_archive_browser")
|
set(BINARY_NAME "fediverse_archive_browser")
|
||||||
|
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ END
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
// Icon with lowest ID value placed first to ensure application icon
|
||||||
// remains consistent on all systems.
|
// remains consistent on all systems.
|
||||||
IDI_APP_ICON ICON "resources\\fba_app_icon.ico"
|
IDI_APP_ICON ICON "resources\\fediverse_archive_reader_icon_256.ico"
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -90,7 +90,7 @@ BEGIN
|
||||||
BLOCK "040904e4"
|
BLOCK "040904e4"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "My Social Portal" "\0"
|
VALUE "CompanyName", "My Social Portal" "\0"
|
||||||
VALUE "FileDescription", "Fediverse ArchiveB rowser" "\0"
|
VALUE "FileDescription", "Fediverse Archive Browser" "\0"
|
||||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||||
VALUE "InternalName", "fediverse_archive_browser" "\0"
|
VALUE "InternalName", "fediverse_archive_browser" "\0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2022 My Social Portal All rights reserved." "\0"
|
VALUE "LegalCopyright", "Copyright (C) 2022 My Social Portal All rights reserved." "\0"
|
||||||
|
|
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 264 KiB |
|
@ -1,6 +1,10 @@
|
||||||
# Friendica Archive Browser Changelog
|
# Friendica Archive Browser Changelog
|
||||||
|
|
||||||
## Version 1.1.0
|
## Version 1.2.0
|
||||||
|
|
||||||
|
Minor version update to fix a broken REST service call for pulling the timeline.
|
||||||
|
|
||||||
|
## Version 1.1.0
|
||||||
|
|
||||||
Minor version update to increase reporting during run
|
Minor version update to increase reporting during run
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,11 @@ A simple command line tool for archiving your Friendica profile via the Friendic
|
||||||
|
|
||||||
There are pre-compiled binaries for the tools for Linux, Mac, and Windows below. You can download
|
There are pre-compiled binaries for the tools for Linux, Mac, and Windows below. You can download
|
||||||
those and use them. Simply download for your respective platform, unzip, and then run.
|
those and use them. Simply download for your respective platform, unzip, and then run.
|
||||||
* [Windows x64](https://mysocialportal-friendica-archiving.sfo3.digitaloceanspaces.com/archiver/releases/1.1.0/friendica_archiver_v1.1.0_win_x64.zip)
|
* [Windows x64](https://mysocialportal-fediverse-archiving.sfo3.digitaloceanspaces.com/friendica_archiver/1.2.0/friendica_archiver_v1.2.0_win_x64.zip)
|
||||||
* [macOS x64](https://mysocialportal-friendica-archiving.sfo3.digitaloceanspaces.com/archiver/releases/1.1.0/friendica_archiver_v1.1.0_macos_x64.zip)
|
* [macOS x64](https://mysocialportal-fediverse-archiving.sfo3.digitaloceanspaces.com/friendica_archiver/1.2.0/friendica_archiver_v1.2.0_macos_x64.zip)
|
||||||
* [Linux x64](https://mysocialportal-friendica-archiving.sfo3.digitaloceanspaces.com/archiver/releases/1.1.0/friendica_archiver_v1.1.0_linux_x64.zip)
|
* [Linux x64](https://mysocialportal-fediverse-archiving.sfo3.digitaloceanspaces.com/friendica_archiver/1.2.0/friendica_archiver_v1.2.0_linux_x64.zip)
|
||||||
|
|
||||||
|
**Note: The binaries have a .exe extension on all platforms even though it is only significant on Windows.**
|
||||||
|
|
||||||
Or you can run it directly from this directory using standard Dart commands:
|
Or you can run it directly from this directory using standard Dart commands:
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: friendica_archiver
|
name: friendica_archiver
|
||||||
description: A simple command-line application.
|
description: A simple command-line application.
|
||||||
version: 1.1.0
|
version: 1.2.0
|
||||||
# homepage: https://www.example.com
|
# homepage: https://www.example.com
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
|