Remove reference to omnivore.app

This commit is contained in:
Thomas Rogers 2025-09-24 12:37:39 +02:00
parent a7ad44d840
commit bda21730cd
176 changed files with 749 additions and 747 deletions

View file

@ -8,7 +8,7 @@
<img align="right" src="https://avatars.githubusercontent.com/u/70113176?s=400&u=506b21d9f019f3160963c010ef363667fb24c7c9&v=4" height="150px" alt="Omnivore Logo">
[Omnivore](https://omnivore.app) is a complete, open source read-it-later solution for people who like text.
[Omnivore](https://omnivore.work) is a complete, open source read-it-later solution for people who like text.
We built Omnivore because we love reading and we want it to be more social. Join us!
@ -17,11 +17,11 @@ We built Omnivore because we love reading and we want it to be more social. Join
- Automatically saves your place in long articles
- Add newsletter articles via email (with substack support!)
- PDF support
- [Web app](https://omnivore.app/) written in Node.js and TypeScript
- [Native iOS app](https://omnivore.app/install/ios) ([source](https://github.com/omnivore-app/omnivore/tree/main/apple))
- [Android app](https://omnivore.app/install/android) ([source](https://github.com/omnivore-app/omnivore/tree/main/android/Omnivore))
- [Web app](https://omnivore.work/) written in Node.js and TypeScript
- [Native iOS app](https://omnivore.work/install/ios) ([source](https://github.com/omnivore-app/omnivore/tree/main/apple))
- [Android app](https://omnivore.work/install/android) ([source](https://github.com/omnivore-app/omnivore/tree/main/android/Omnivore))
- Progressive web app for Android users
- Browser extensions for [Chrome](https://omnivore.app/install/chrome), [Safari](https://omnivore.app/install/safari), [Firefox](https://omnivore.app/install/firefox), and [Edge](https://omnivore.app/install/edge)
- Browser extensions for [Chrome](https://omnivore.work/install/chrome), [Safari](https://omnivore.work/install/safari), [Firefox](https://omnivore.work/install/firefox), and [Edge](https://omnivore.work/install/edge)
- Labels (aka tagging)
- Offline support
- Text to speech (iOS only)
@ -38,7 +38,7 @@ A guide for running a self hosted server can be found [here](./self-hosting/GUID
We're building our community on Discord. [Join us!](https://discord.gg/h2z5rppzz9)
Read more about Omnivore on our blog. <https://blog.omnivore.app/p/getting-started-with-omnivore>
Read more about Omnivore on our blog. <https://blog.omnivore.work/p/getting-started-with-omnivore>
## Shoutouts :tada:
@ -57,7 +57,7 @@ Omnivore takes advantage of some great open source software:
## Importing Libraries
Check out our [docs](https://docs.omnivore.app/using/importing.html) for information on importing your data from other apps.
Check out our [docs](https://docs.omnivore.work/using/importing.html) for information on importing your data from other apps.
## How to setup local development :computer:
@ -88,7 +88,7 @@ Open <http://localhost:3000> and confirm Omnivore is running
#### 3. Login with the test account
During database setup docker compose creates an account `demo@omnivore.app`, password: `demo_password`.
During database setup docker compose creates an account `demo@omnivore.work`, password: `demo_password`.
Go to <http://localhost:3000/> in your browser and choose `Continue with Email` to login.
@ -145,7 +145,7 @@ yarn start
This will start the puppeteer-parse service on port 9090.
In your browser go to <http://localhost:3000/home>, click the `Add Link` button,
and enter a URL such as `https://blog.omnivore.app/p/getting-started-with-omnivore`.
and enter a URL such as `https://blog.omnivore.work/p/getting-started-with-omnivore`.
You should see a Chromium window open and navigate to your link. When the service
is done fetching your content you will see it in your library.

View file

@ -6,14 +6,14 @@ Keeping user information safe and secure is a top priority, and we welcome the c
Omnivore runs a number of services but only submissions under the following domains are eligible for rewards. Any Omnivore-owned domains not listed below are not in scope, not eligible for rewards, and not covered by our legal safe harbor.
- omnivore.app
- demo.omnivore.app
- omnivore.work
- demo.omnivore.work
## Domains that are out of scope:
- docs.omnivore.app
- blog.omnivore.app
- changes.omnivore.app
- docs.omnivore.work
- blog.omnivore.work
- changes.omnivore.work
## The following vulnerability categories are outside of the scope of our responsible disclosure program, and aren't eligible for bounty:
@ -30,7 +30,7 @@ Omnivore runs a number of services but only submissions under the following doma
# How to Submit a Report
To submit a vulnerability report to Omnivore Media, please contact us at feedback@omnivore.app. Your submission will be reviewed and validated by a member of our security team.
To submit a vulnerability report to Omnivore Media, please contact us at feedback@omnivore.work. Your submission will be reviewed and validated by a member of our security team.
# Safe Harbor

View file

@ -57,8 +57,8 @@ android {
debug {
signingConfig = signingConfigs.getByName("debug")
applicationIdSuffix = ".debug"
buildConfigField("String", "OMNIVORE_API_URL", "\"https://api-demo.omnivore.app\"")
buildConfigField("String", "OMNIVORE_WEB_URL", "\"https://demo.omnivore.app\"")
buildConfigField("String", "OMNIVORE_API_URL", "\"https://api-demo.omnivore.work\"")
buildConfigField("String", "OMNIVORE_WEB_URL", "\"https://demo.omnivore.work\"")
buildConfigField(
"String",
"OMNIVORE_GAUTH_SERVER_CLIENT_ID",
@ -68,8 +68,8 @@ android {
release {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
buildConfigField("String", "OMNIVORE_API_URL", "\"https://api-prod.omnivore.app\"")
buildConfigField("String", "OMNIVORE_WEB_URL", "\"https://omnivore.app\"")
buildConfigField("String", "OMNIVORE_API_URL", "\"https://api-prod.omnivore.work\"")
buildConfigField("String", "OMNIVORE_WEB_URL", "\"https://omnivore.work\"")
buildConfigField(
"String",
"OMNIVORE_GAUTH_SERVER_CLIENT_ID",

File diff suppressed because one or more lines are too long

View file

@ -225,7 +225,7 @@ fun WelcomeHeader() {
@Composable
fun MoreInfoButton() {
val context = LocalContext.current
val intent = remember { Intent(Intent.ACTION_VIEW, Uri.parse("https://omnivore.app/about")) }
val intent = remember { Intent(Intent.ACTION_VIEW, Uri.parse("https://omnivore.work/about")) }
ClickableText(
text = AnnotatedString(

View file

@ -114,7 +114,7 @@ fun SelfHostedFields(
OutlinedTextField(
modifier = Modifier.fillMaxWidth(),
value = apiServer,
placeholder = { Text(text = "https://api-prod.omnivore.app/") },
placeholder = { Text(text = "https://api-prod.omnivore.work/") },
label = { Text(stringResource(R.string.self_hosted_view_field_api_url_label)) },
onValueChange = onAPIServerChange,
keyboardOptions = KeyboardOptions(
@ -127,7 +127,7 @@ fun SelfHostedFields(
OutlinedTextField(
modifier = Modifier.fillMaxWidth().padding(bottom = 32.dp),
value = webServer,
placeholder = { Text(text = "https://omnivore.app/") },
placeholder = { Text(text = "https://omnivore.work/") },
label = { Text(stringResource(R.string.self_hosted_view_field_web_url_label)) },
onValueChange = onWebServerChange,
keyboardOptions = KeyboardOptions(

View file

@ -120,7 +120,7 @@ internal fun AboutScreen(
LinkIcon(
label = stringResource(R.string.website),
icon = Icons.Outlined.Public,
url = "https://omnivore.app",
url = "https://omnivore.work",
)
LinkIcon(
label = "Discord",

View file

@ -166,15 +166,15 @@ fun PrimaryNavigator(
}
composable(Routes.Documentation.route) {
WebViewScreen(navController = navController, url = "https://docs.omnivore.app")
WebViewScreen(navController = navController, url = "https://docs.omnivore.work")
}
composable(Routes.PrivacyPolicy.route) {
WebViewScreen(navController = navController, url = "https://omnivore.app/privacy")
WebViewScreen(navController = navController, url = "https://omnivore.work/privacy")
}
composable(Routes.TermsAndConditions.route) {
WebViewScreen(navController = navController, url = "https://omnivore.app/app/terms")
WebViewScreen(navController = navController, url = "https://omnivore.work/app/terms")
}
}
}

View file

@ -15,4 +15,4 @@ object AppleConstants {
}
const val FORGOT_PASSWORD_URL = "${BuildConfig.OMNIVORE_WEB_URL}/auth/forgot-password"
const val SELF_HOSTING_URL = "https://docs.omnivore.app/self-hosting/self-hosting.html"
const val SELF_HOSTING_URL = "https://docs.omnivore.work/self-hosting/self-hosting.html"

View file

@ -10,7 +10,7 @@
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>QJF2XZ86HB.app.omnivore.app</string>
<string>QJF2XZ86HB.app.omnivore.work</string>
</array>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>

View file

@ -10,11 +10,11 @@
</array>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:omnivore.app</string>
<string>applinks:dev.omnivore.app</string>
<string>applinks:demo.omnivore.app</string>
<string>webcredentials:omnivore.app</string>
<string>webcredentials:dev.omnivore.app</string>
<string>applinks:omnivore.work</string>
<string>applinks:dev.omnivore.work</string>
<string>applinks:demo.omnivore.work</string>
<string>webcredentials:omnivore.work</string>
<string>webcredentials:dev.omnivore.work</string>
</array>
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>

View file

@ -6,7 +6,7 @@
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>QJF2XZ86HB.app.omnivore.app</string>
<string>QJF2XZ86HB.app.omnivore.work</string>
</array>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>

View file

@ -6,7 +6,7 @@
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>QJF2XZ86HB.app.omnivore.app</string>
<string>QJF2XZ86HB.app.omnivore.work</string>
</array>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>

View file

@ -199,7 +199,7 @@
0480E71326D939BF006CAE2F /* MacLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MacLaunchTests.swift; sourceTree = "<group>"; };
0480E71526D939BF006CAE2F /* MacUITests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = MacUITests.plist; sourceTree = "<group>"; };
0480E71B26D95096006CAE2F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
048ECFFC26A0B1CB00469E57 /* Omnivore.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Omnivore.app; sourceTree = BUILT_PRODUCTS_DIR; };
048ECFFC26A0B1CB00469E57 /* omnivore.work */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = omnivore.work; sourceTree = BUILT_PRODUCTS_DIR; };
048ED00A26A0B1CC00469E57 /* MacOmnivore.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = MacOmnivore.plist; sourceTree = "<group>"; };
048ED00B26A0B1CC00469E57 /* MacOmnivore.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MacOmnivore.entitlements; sourceTree = "<group>"; };
04920CC5279671EF003EC1B6 /* PushNotificationConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationConfig.swift; sourceTree = "<group>"; };
@ -209,7 +209,7 @@
04EE741F26DFD2CA001B3483 /* ScreenIdentifierHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenIdentifierHelpers.swift; sourceTree = "<group>"; };
082449FB9F5F3730EE0D8D3F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
0BE7F7C593222747A96AA4E7 /* Omnivore.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Omnivore.plist; sourceTree = "<group>"; };
1A39D8FDA25447FDBF07E24B /* Omnivore.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Omnivore.app; sourceTree = BUILT_PRODUCTS_DIR; };
1A39D8FDA25447FDBF07E24B /* omnivore.work */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = omnivore.work; sourceTree = BUILT_PRODUCTS_DIR; };
42321E822714E6B00056429F /* scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = scripts; sourceTree = "<group>"; };
42321E842714E6B00056429F /* views */ = {isa = PBXFileReference; lastKnownFileType = folder; path = views; sourceTree = "<group>"; };
42704E7228E6BDAF00C8C73E /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; };
@ -532,10 +532,10 @@
E601FA26367162479B614F0F /* Products */ = {
isa = PBXGroup;
children = (
1A39D8FDA25447FDBF07E24B /* Omnivore.app */,
1A39D8FDA25447FDBF07E24B /* omnivore.work */,
B5EF8E3E143618BFA9F4D89A /* OmnivoreTests.xctest */,
95D337DDCEA2007A9705A969 /* ShareExtension.appex */,
048ECFFC26A0B1CB00469E57 /* Omnivore.app */,
048ECFFC26A0B1CB00469E57 /* omnivore.work */,
0411792726A22860004AE24F /* UnitTests-MacApp.xctest */,
046C5CD226A3F89A00AC5349 /* ShareExtension-Mac.appex */,
0480E71126D939BF006CAE2F /* UITests-Mac.xctest */,
@ -646,7 +646,7 @@
04B8B00526A0CEFA00D3ED0C /* App */,
);
productName = MacOmnivore;
productReference = 048ECFFC26A0B1CB00469E57 /* Omnivore.app */;
productReference = 048ECFFC26A0B1CB00469E57 /* omnivore.work */;
productType = "com.apple.product-type.application";
};
3D30FF2BDEFCACE5A2A13AD1 /* ShareExtension */ = {
@ -753,7 +753,7 @@
045B1680279147E7005047F7 /* FirebaseMessaging */,
);
productName = Omnivore;
productReference = 1A39D8FDA25447FDBF07E24B /* Omnivore.app */;
productReference = 1A39D8FDA25447FDBF07E24B /* omnivore.work */;
productType = "com.apple.product-type.application";
};
B46CFFB2A582C337CB0AAAEF /* OmnivoreTests-iOS */ = {
@ -1172,7 +1172,7 @@
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.6;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Omnivore.app/Contents/MacOS/Omnivore";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/omnivore.work/Contents/MacOS/Omnivore";
};
name = Debug;
};
@ -1198,7 +1198,7 @@
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.6;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Omnivore.app/Contents/MacOS/Omnivore";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/omnivore.work/Contents/MacOS/Omnivore";
};
name = Release;
};
@ -1273,7 +1273,7 @@
MARKETING_VERSION = 1.23.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.ShareExtension-Mac";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.ShareExtension-Mac";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1305,7 +1305,7 @@
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.23.0;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.ShareExtension-Mac";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.ShareExtension-Mac";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1392,7 +1392,7 @@
MARKETING_VERSION = 1.46.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.app;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.work;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1426,7 +1426,7 @@
MACOSX_DEPLOYMENT_TARGET = 12.0;
MARKETING_VERSION = 1.46.0;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.app;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.work;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1458,7 +1458,7 @@
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.5;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Omnivore.app/Omnivore";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/omnivore.work/Omnivore";
TEST_TARGET_NAME = Omnivore;
};
name = Debug;
@ -1479,8 +1479,8 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.46.0;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.app;
MARKETING_VERSION = 1.46.1;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.work;
PRODUCT_NAME = Omnivore;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@ -1504,7 +1504,7 @@
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.AppStoreScreenshots;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.workStoreScreenshots;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
@ -1527,7 +1527,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MARKETING_VERSION = 1.0;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.AppStoreScreenshots;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.workStoreScreenshots;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
@ -1565,7 +1565,7 @@
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.Omnivore-Extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.Omnivore-Extension";
PRODUCT_NAME = SafariExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@ -1603,7 +1603,7 @@
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.Omnivore-Extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.Omnivore-Extension";
PRODUCT_NAME = SafariExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@ -1644,7 +1644,7 @@
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.Omnivore-Extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.Omnivore-Extension";
PRODUCT_NAME = SafariExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1683,7 +1683,7 @@
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.Omnivore-Extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.Omnivore-Extension";
PRODUCT_NAME = SafariExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@ -1766,7 +1766,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.23.0;
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.share-extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.share-extension";
PRODUCT_NAME = ShareExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@ -1799,7 +1799,7 @@
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 5.5;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Omnivore.app/Omnivore";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/omnivore.work/Omnivore";
TEST_TARGET_NAME = Omnivore;
};
name = Release;
@ -1820,8 +1820,8 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.46.0;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.app;
MARKETING_VERSION = 1.46.1;
PRODUCT_BUNDLE_IDENTIFIER = app.omnivore.work;
PRODUCT_NAME = Omnivore;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;
@ -1850,7 +1850,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.23.0;
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.app.share-extension";
PRODUCT_BUNDLE_IDENTIFIER = "app.omnivore.work.share-extension";
PRODUCT_NAME = ShareExtension;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = iphoneos;

View file

@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -71,7 +71,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -88,7 +88,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -97,7 +97,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -121,7 +121,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -62,7 +62,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -81,7 +81,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -65,7 +65,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -84,7 +84,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -62,7 +62,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -81,7 +81,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -64,7 +64,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -83,7 +83,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "048ECFFB26A0B1CB00469E57"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -73,7 +73,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
@ -92,7 +92,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8260E9C026EF983F8970EC05"
BuildableName = "Omnivore.app"
BuildableName = "omnivore.work"
BlueprintName = "Omnivore-iOS"
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>

View file

@ -137,7 +137,7 @@ import Views
public var body: some Commands {
CommandGroup(after: .appInfo) {
Button("Open Online", action: {
if let url = URL(string: "https://omnivore.app/") {
if let url = URL(string: "https://omnivore.work/") {
NSWorkspace.shared.open(url)
}
})

View file

@ -159,7 +159,7 @@ struct DigestConfigView: View {
Image.coloredSmallOmnivoreLogo
.resizable()
.frame(width: 20, height: 20)
Text("Omnivore.app")
Text("omnivore.work")
.font(Font.system(size: 14))
.foregroundColor(Color.themeLibraryItemSubtle)
Spacer()

View file

@ -238,7 +238,7 @@ struct FullScreenDigestView: View {
Image.coloredSmallOmnivoreLogo
.resizable()
.frame(width: 20, height: 20)
Text("Omnivore.app")
Text("omnivore.work")
.font(Font.system(size: 14))
.foregroundColor(Color.themeLibraryItemSubtle)
Spacer()

View file

@ -19,9 +19,9 @@ public struct FollowingViewModal: View {
If you don't need the following tab you can disable it from the filters view in your settings.
- [Learn more about the following](https://docs.omnivore.app/using/following.html)
- [Learn more about the following](https://docs.omnivore.work/using/following.html)
- [Tell your friends about Omnivore](https://omnivore.app/about)
- [Tell your friends about Omnivore](https://omnivore.work/about)
"""

View file

@ -144,7 +144,7 @@
.onTapGesture { setSearchTerm("has:highlights") }
Button(action: {}, label: {
Text("[More on Advanced Search](https://docs.omnivore.app/using/search.html)")
Text("[More on Advanced Search](https://docs.omnivore.work/using/search.html)")
.underline()
.padding(.top, 25)
})

View file

@ -85,7 +85,7 @@
Section {
Section {
Text("""
[Learn more about clubs](https://blog.omnivore.app/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
[Learn more about clubs](https://blog.omnivore.work/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
""")
.accentColor(.blue)
}

View file

@ -151,7 +151,7 @@ struct ProfileView: View {
Section {
Button(
action: {
if let url = URL(string: "https://docs.omnivore.app") {
if let url = URL(string: "https://docs.omnivore.work") {
openURL(url)
}
},
@ -187,7 +187,7 @@ struct ProfileView: View {
Section {
Button(
action: {
if let url = URL(string: "https://omnivore.app/privacy") {
if let url = URL(string: "https://omnivore.work/privacy") {
openURL(url)
}
},
@ -196,7 +196,7 @@ struct ProfileView: View {
Button(
action: {
if let url = URL(string: "https://omnivore.app/terms") {
if let url = URL(string: "https://omnivore.work/terms") {
openURL(url)
}
},

View file

@ -132,7 +132,7 @@
Text("""
\(LocalText.clubsAdminDenyViewing)
[Learn more about clubs](https://blog.omnivore.app/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
[Learn more about clubs](https://blog.omnivore.work/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
""")
.accentColor(.blue)
} else if viewModel.nonAdmins.count > 0 {
@ -147,7 +147,7 @@
Text("""
\(LocalText.clubsNoMembers)
[Learn more about clubs](https://blog.omnivore.app/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
[Learn more about clubs](https://blog.omnivore.work/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
""")
.accentColor(.blue)
}

View file

@ -56,7 +56,7 @@ struct SelfHostSettingsView: View {
ScrollView {
VStack {
Text("API Server Base URL").frame(maxWidth: .infinity, alignment: .leading)
TextField("URL", text: $apiServerAddress, prompt: Text("https://api-prod.omnivore.app"))
TextField("URL", text: $apiServerAddress, prompt: Text("https://api-prod.omnivore.work"))
.autocorrectionDisabled(true)
#if os(iOS)
.keyboardType(.URL)
@ -64,7 +64,7 @@ struct SelfHostSettingsView: View {
#endif
Text("Web Server URL").frame(maxWidth: .infinity, alignment: .leading)
TextField("URL", text: $webServerAddress, prompt: Text("https://omnivore.app"))
TextField("URL", text: $webServerAddress, prompt: Text("https://omnivore.work"))
.autocorrectionDisabled(true)
#if os(iOS)
.keyboardType(.URL)
@ -72,7 +72,7 @@ struct SelfHostSettingsView: View {
#endif
Text("Text-to-speech Server URL").frame(maxWidth: .infinity, alignment: .leading)
TextField("URL", text: $ttsServerAddress, prompt: Text("https://tts.omnivore.app"))
TextField("URL", text: $ttsServerAddress, prompt: Text("https://tts.omnivore.work"))
.autocorrectionDisabled(true)
#if os(iOS)
.keyboardType(.URL)
@ -85,15 +85,15 @@ struct SelfHostSettingsView: View {
If you have chosen to deploy your own server instance, fill in the \
above fields to connect to your private self-hosted instance.
[Learn more about self-hosting Omnivore](https://docs.omnivore.app/self-hosting/self-hosting.html)
[Learn more about self-hosting Omnivore](https://docs.omnivore.work/self-hosting/self-hosting.html)
""")
.accentColor(.blue)
.frame(maxWidth: .infinity, alignment: .leading)
Button(action: {
AppEnvironment.setCustom(serverBaseURL: "https://api-prod.omnivore.app",
webAppBaseURL: "https://omnivore.app",
ttsBaseURL: "https://tts.omnivore.app")
AppEnvironment.setCustom(serverBaseURL: "https://api-prod.omnivore.work",
webAppBaseURL: "https://omnivore.work",
ttsBaseURL: "https://tts.omnivore.work")
dataService.switchAppEnvironment(appEnvironment: AppEnvironment.prod)
dismiss()
}, label: {

View file

@ -166,7 +166,7 @@
Text("""
\(LocalText.clubsNoneJoined)
[Learn more about clubs](https://blog.omnivore.app/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
[Learn more about clubs](https://blog.omnivore.work/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
""")
.accentColor(.blue)
} else {

View file

@ -135,40 +135,40 @@ struct WebReaderContainerView: View {
}
#if os(iOS)
var audioNavbarItem: some View {
if audioController.isLoadingItem(audioController.itemAudioProperties) {
return AnyView(ProgressView()
.padding(.horizontal))
} else {
return AnyView(
Button(
action: {
switch audioController.state {
case .playing:
if audioController.itemAudioProperties?.itemID == self.item.unwrappedID {
audioController.pause()
return
}
fallthrough
case .paused:
if audioController.itemAudioProperties?.itemID == self.item.unwrappedID {
audioController.unpause()
return
}
fallthrough
default:
audioController.play(itemAudioProperties: item.audioProperties)
}
},
label: {
textToSpeechButtonImage
}
)
.buttonStyle(.plain)
.padding(.trailing, 4)
)
}
}
// var audioNavbarItem: some View {
// if audioController.isLoadingItem(audioController.itemAudioProperties) {
// return AnyView(ProgressView()
// .padding(.horizontal))
// } else {
// return AnyView(
// Button(
// action: {
// switch audioController.state {
// case .playing:
// if audioController.itemAudioProperties?.itemID == self.item.unwrappedID {
// audioController.pause()
// return
// }
// fallthrough
// case .paused:
// if audioController.itemAudioProperties?.itemID == self.item.unwrappedID {
// audioController.unpause()
// return
// }
// fallthrough
// default:
// audioController.play(itemAudioProperties: item.audioProperties)
// }
// },
// label: {
// textToSpeechButtonImage
// }
// )
// .buttonStyle(.plain)
// .padding(.trailing, 4)
// )
// }
// }
var textToSpeechButtonImage: some View {
if audioController.playbackError || audioController.state == .stopped || audioController.itemAudioProperties?.itemID != self.item.id {
@ -280,7 +280,7 @@ struct WebReaderContainerView: View {
Spacer()
#endif
//
// Button(
// action: { showExplainSheet = true },
// label: { Image(systemName: "sparkles") }
@ -289,7 +289,8 @@ struct WebReaderContainerView: View {
// .padding(.trailing, 4)
Button(
action: { showLabelsModal = true },
action: {
showLabelsModal = true },
label: {
Image.label
}
@ -307,7 +308,7 @@ struct WebReaderContainerView: View {
.padding(.trailing, 4)
#if os(iOS)
audioNavbarItem
// audioNavbarItem
Button(
action: {

View file

@ -25,7 +25,7 @@ struct SafariWebLink: Identifiable {
func hasOriginalUrl(_ item: Models.LibraryItem) -> Bool {
if let pageURLString = item.pageURLString, let host = URL(string: pageURLString)?.host {
if host == "omnivore.app" {
if host == "omnivore.work" {
return false
}
return true

View file

@ -46,7 +46,7 @@ struct WelcomeView: View {
#if os(iOS)
showAboutPage = true
#else
if let url = URL(string: "https://omnivore.app/about") {
if let url = URL(string: "https://omnivore.work/about") {
NSWorkspace.shared.open(url)
}
#endif
@ -147,7 +147,7 @@ struct WelcomeView: View {
}
}
.sheet(isPresented: $showAboutPage) {
if let url = URL(string: "https://omnivore.app/about") {
if let url = URL(string: "https://omnivore.work/about") {
SafariView(url: url)
.ignoresSafeArea(.all, edges: .bottom)
}

View file

@ -21,16 +21,16 @@ public enum AppEnvironment: String {
}()
}
private let devBaseURL = "https://api-dev.omnivore.app"
private let demoBaseURL = "https://api-demo.omnivore.app"
private let prodBaseURL = "https://api-prod.omnivore.app"
private let devBaseURL = "https://api-dev.omnivore.work"
private let demoBaseURL = "https://api-demo.omnivore.work"
private let prodBaseURL = "https://api-prod.omnivore.work"
private let demoTtsURL = "https://tts-demo.omnivore.app"
private let prodTtsURL = "https://tts-prod.omnivore.app"
private let demoTtsURL = "https://tts-demo.omnivore.work"
private let prodTtsURL = "https://tts-prod.omnivore.work"
private let devWebURL = "https://web-dev.omnivore.app"
private let demoWebURL = "https://demo.omnivore.app"
private let prodWebURL = "https://omnivore.app"
private let devWebURL = "https://web-dev.omnivore.work"
private let demoWebURL = "https://demo.omnivore.work"
private let prodWebURL = "https://omnivore.work"
public enum AppEnvironmentUserDefaultKey: String {
case serverBaseURL = "AppEnvironment_serverBaseURL"

View file

@ -16,7 +16,7 @@ public class PersistentContainer: NSPersistentContainer {
#if os(iOS)
let appGroupID = "group.app.omnivoreapp"
#else
let appGroupID = "QJF2XZ86HB.app.omnivore.app"
let appGroupID = "QJF2XZ86HB.app.omnivore.work"
#endif
let appGroupContainer = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupID)
return appGroupContainer?.appendingPathComponent(DatabaseFile)

View file

@ -141,7 +141,7 @@ public extension LibraryItem {
switch host {
case "storage.googleapis.com":
return true
case "omnivore.app":
case "omnivore.work":
return true
default:
return false

View file

@ -269,7 +269,7 @@ private extension PageScrapePayload {
#if os(iOS)
let appGroupID = "group.app.omnivoreapp"
#else
let appGroupID = "QJF2XZ86HB.app.omnivore.app"
let appGroupID = "QJF2XZ86HB.app.omnivore.work"
#endif
return FileManager.default.containerURL(
forSecurityApplicationGroupIdentifier: appGroupID

View file

@ -62,7 +62,7 @@ public struct FeaturePrimer: View {
*During the beta you can create a max of three clubs. Club sizes are limited to 12 people.*
[Learn more about clubs](https://blog.omnivore.app/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
[Learn more about clubs](https://blog.omnivore.work/p/dca38ba4-8a74-42cc-90ca-d5ffa5d075cc)
"""
)

View file

@ -2,7 +2,7 @@ import Foundation
func cardShouldHideUrl(_ url: String?) -> Bool {
if let url = url, let origin = URL(string: url)?.host {
let hideHosts = ["storage.googleapis.com", "omnivore.app"]
let hideHosts = ["storage.googleapis.com", "omnivore.work"]
if hideHosts.contains(origin) {
return true
}

File diff suppressed because one or more lines are too long

View file

@ -42,7 +42,7 @@
// Push Notification Settings
"notificationsEnabled" = "Benachrichtigungen aktiviert";
"notificationsExplainer" = "Das Aktivieren von Push-Benachrichtigungen gibt Omnivore die Erlaubnis, Benachrichtigungen zu senden,\ndu entscheidest jedoch, welche Benachrichtigungen gesendet werden.";
"notificationsTriggerExplainer" = "Push-Benachrichtigungen werden durch deine \n[Kontoregeln](https://omnivore.app/settings/rules) ausgelöst, die du online bearbeiten kannst.";
"notificationsTriggerExplainer" = "Push-Benachrichtigungen werden durch deine \n[Kontoregeln](https://omnivore.work/settings/rules) ausgelöst, die du online bearbeiten kannst.";
"notificationsEnable" = "Push-Benachrichtigungen aktivieren?";
"notificationsGeneralExplainer" = "Erhalte Benachrichtigungen, wenn Newsletter-Links in deinem Posteingang eintreffen. Oder erhalte Erinnerungen, die du über unsere Erweiterung festgelegt hast.";
"notificationsOptionDeny" = "Nein, danke";
@ -205,4 +205,4 @@
// Unit test Entry -- Do not remove this or add entries after this one.
// This allows us to check for syntax errors in this file with a unit test
"unitTestTrailingEntry" = "Nur zu Testzwecken.";
"unitTestTrailingEntry" = "Nur zu Testzwecken.";

View file

@ -42,7 +42,7 @@
// Push Notification Settings
"notificationsEnabled" = "Notifications enabled";
"notificationsExplainer" = "Enabling push notifications gives Omnivore device permission to send notifications,\nbut you are in charge of which notifications are sent.";
"notificationsTriggerExplainer" = "Push notifications are triggered using your \n[account rules](https://omnivore.app/settings/rules) which you can edit online.";
"notificationsTriggerExplainer" = "Push notifications are triggered using your \n[account rules](https://omnivore.work/settings/rules) which you can edit online.";
"notificationsEnable" = "Enable Push Notifications?";
"notificationsGeneralExplainer" = "Get notified when newsletter links reach your inbox. Or receive reminders that you set from our share extension.";
"notificationsOptionDeny" = "No Thanks";

View file

@ -42,7 +42,7 @@
// Push Notification Settings
"notificationsEnabled" = "Notificaciones Habilitadas";
"notificationsExplainer" = "Activar las notificaciones Push da permiso para enviar notificaciones al dispositivo donde has instalado Omnivore,\npero tu estás a cargo de qué notificaciones se envían.";
"notificationsTriggerExplainer" = "Las notificaciones Push se activan con tus \n[reglas de cuenta](https://omnivore.app/settings/rules), que puedes editar online.";
"notificationsTriggerExplainer" = "Las notificaciones Push se activan con tus \n[reglas de cuenta](https://omnivore.work/settings/rules), que puedes editar online.";
"notificationsEnable" = "¿Activar Notificaciones Push?";
"notificationsGeneralExplainer" = "Recibe una notificación cuando los enlaces de newsletter lleguen a tu bandeja de entrada. O recibe los recordatorios que establezcas desde nuestra extensión para compartir.";
"notificationsOptionDeny" = "No, gracias";

View file

@ -43,7 +43,7 @@
// Push Notification Settings
"notificationsEnabled" = "启用通知";
"notificationsExplainer" = "启用推送通知将授予 Omnivore 设备发送通知的权限,但由您负责发送哪些通知。";
"notificationsTriggerExplainer" = "推送通知使用您的[账号规则](https://omnivore.app/settings/rules)您可以在线编辑。";
"notificationsTriggerExplainer" = "推送通知使用您的[账号规则](https://omnivore.work/settings/rules)您可以在线编辑。";
"notificationsEnable" = "确定启用推送通知?";
"notificationsGeneralExplainer" = "当新闻资讯链接到达您的收集箱时收到通知。或者接收您从我们的分享扩展中设置的提醒。";
"notificationsOptionDeny" = "不用了";
@ -248,7 +248,7 @@
//"filter to inbox, archive, or all" = "筛选到收集箱、存档或全部";
//"search for a specific title" = "搜索特定标题";
//"any saved read with highlights" = "任何带有荧光笔高亮显示的已保存文章";
//"[More on Advanced Search](https://docs.omnivore.app/using/search.html)" = "[了解更多高级搜索](https://docs.omnivore.app/zh/using/search.html)";
//"[More on Advanced Search](https://docs.omnivore.work/using/search.html)" = "[了解更多高级搜索](https://docs.omnivore.work/zh/using/search.html)";
//
//// Views/AudioPlayer/ExpandedPlayer.swift
//"Playback Speed (%.1f×)" = "播放速度 (%.1f×)";

View file

@ -42,7 +42,7 @@
// Push Notification Settings
"notificationsEnabled" = "已啟用通知";
"notificationsExplainer" = "啟用推播通知將授予 Omnivore 裝置傳送通知的權限,\n但您可以控制哪些通知被傳送。";
"notificationsTriggerExplainer" = "推播通知是由您的\n[帳戶規則](https://omnivore.app/settings/rules) 觸發,您可以在線上編輯。";
"notificationsTriggerExplainer" = "推播通知是由您的\n[帳戶規則](https://omnivore.work/settings/rules) 觸發,您可以在線上編輯。";
"notificationsEnable" = "啟用推播通知?";
"notificationsGeneralExplainer" = "當電子報連結抵達您的收件匣時獲得通知。或從我們的分享擴充功能接收提醒。";
"notificationsOptionDeny" = "不,謝謝";

View file

@ -11,15 +11,15 @@ final class UtilsTests: XCTestCase {
func testNormalizeUrl() {
// trailing slash removed
XCTAssertEqual(normalizeURL("https://omnivore.app/"), "https://omnivore.app")
XCTAssertEqual(normalizeURL("https://omnivore.work/"), "https://omnivore.work")
// utm_ removed
// swiftlint:disable:next line_length
XCTAssertEqual(normalizeURL("https://omnivore.app/?aa=a&bb=b&utm_track=track&cc=c"), "https://omnivore.app?aa=a&bb=b&cc=c")
XCTAssertEqual(normalizeURL("https://omnivore.work/?aa=a&bb=b&utm_track=track&cc=c"), "https://omnivore.work?aa=a&bb=b&cc=c")
// query params sorted
XCTAssertEqual(normalizeURL("https://omnivore.app/?aa=a&cc=c&bb=b"), "https://omnivore.app?aa=a&bb=b&cc=c")
XCTAssertEqual(normalizeURL("https://omnivore.app/?cc=c&bb=b&aa=a"), "https://omnivore.app?aa=a&bb=b&cc=c")
XCTAssertEqual(normalizeURL("https://omnivore.work/?aa=a&cc=c&bb=b"), "https://omnivore.work?aa=a&bb=b&cc=c")
XCTAssertEqual(normalizeURL("https://omnivore.work/?cc=c&bb=b&aa=a"), "https://omnivore.work?aa=a&bb=b&cc=c")
}
static var allTests = [

View file

@ -67,7 +67,7 @@
self.id = UUID(uuidString: item.unwrappedID)!
self.title = item.unwrappedTitle
self.originalURL = item.pageURLString
self.omnivoreWebURL = "https://omnivore.app/me/\(item.slug!)"
self.omnivoreWebURL = "https://omnivore.work/me/\(item.slug!)"
self.omnivoreShortcutURL = "omnivore://read/\(item.unwrappedID)"
self.author = item.author
self.siteName = item.siteName

View file

@ -8,10 +8,10 @@
"default_locale": "en",
"developer": {
"name": "Omnivore Media, Inc",
"url": "https://omnivore.app/"
"url": "https://omnivore.work/"
},
"homepage_url": "https://omnivore.app/",
"content_security_policy": "default-src 'none'; child-src 'none'; manifest-src 'none'; media-src 'none'; object-src 'none'; worker-src 'none'; connect-src https://storage.googleapis.com/ https://api-prod.omnivore.app/api/ blob:; frame-src 'none'; font-src 'none'; img-src data:; script-src 'self'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'none'; base-uri 'none'; form-action 'none'; block-all-mixed-content; upgrade-insecure-requests; report-uri https://api.jeurissen.co/reports/csp/webext/omnivore/",
"homepage_url": "https://omnivore.work/",
"content_security_policy": "default-src 'none'; child-src 'none'; manifest-src 'none'; media-src 'none'; object-src 'none'; worker-src 'none'; connect-src https://storage.googleapis.com/ https://api-prod.omnivore.work/api/ blob:; frame-src 'none'; font-src 'none'; img-src data:; script-src 'self'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'none'; base-uri 'none'; form-action 'none'; block-all-mixed-content; upgrade-insecure-requests; report-uri https://api.jeurissen.co/reports/csp/webext/omnivore/",
"icons": {
"16": "/images/extension/icon-16.png",
"24": "/images/extension/icon-24.png",
@ -36,12 +36,12 @@
"minimum_opera_version": "15",
"applications": {
"gecko": {
"id": "save-extension@omnivore.app"
"id": "save-extension@omnivore.work"
}
},
"browser_specific_settings": {
"gecko": {
"id": "save-extension@omnivore.app"
"id": "save-extension@omnivore.work"
}
},
"options_ui": {

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
function saveAPIKey(){var e=document.getElementById("api-key").value;e?setStorage({apiKey:e}).then((()=>{alert("API key saved!")})):alert("No api-key specified, please create an API key at https://omnivore.app/settings/api")}function loadAPIKey(){getStorageItem("apiKey").then((e=>{e?document.getElementById("api-key").value=e:alert("No API key found in storage.")}))}function clearAPIKey(){document.getElementById("api-key").value="",setStorage({apiKey:void 0}).then((()=>{alert("API key cleared!")}))}function autoDismissChanged(e){const t=document.getElementById("disable-auto-dismiss").checked;console.log(" value: ",t,document.getElementById("disable-auto-dismiss")),setStorage({disableAutoDismiss:t?"true":null}).then((()=>{console.log("disableAutoDismiss updated",t)}))}function saveAutoDismissTime(){const e=document.getElementById("auto-dismiss-time").value;e.length<1||Number.isNaN(Number(e))?alert("Invalid value"):setStorage({autoDismissTime:e}).then((()=>{console.log("autoDismissTime updated",e)}))}document.getElementById("save-api-key-btn").addEventListener("click",saveAPIKey),document.getElementById("load-api-key-btn").addEventListener("click",loadAPIKey),document.getElementById("clear-api-key-btn").addEventListener("click",clearAPIKey),getStorageItem("disableAutoDismiss").then((e=>{document.getElementById("disable-auto-dismiss").checked=!!e})),document.getElementById("disable-auto-dismiss").addEventListener("change",autoDismissChanged),getStorageItem("autoDismissTime").then((e=>{document.getElementById("auto-dismiss-time").value=e??"2500"})),document.getElementById("auto-dismiss-time-btn").addEventListener("click",saveAutoDismissTime);
function saveAPIKey(){var e=document.getElementById("api-key").value;e?setStorage({apiKey:e}).then((()=>{alert("API key saved!")})):alert("No api-key specified, please create an API key at https://omnivore.work/settings/api")}function loadAPIKey(){getStorageItem("apiKey").then((e=>{e?document.getElementById("api-key").value=e:alert("No API key found in storage.")}))}function clearAPIKey(){document.getElementById("api-key").value="",setStorage({apiKey:void 0}).then((()=>{alert("API key cleared!")}))}function autoDismissChanged(e){const t=document.getElementById("disable-auto-dismiss").checked;console.log(" value: ",t,document.getElementById("disable-auto-dismiss")),setStorage({disableAutoDismiss:t?"true":null}).then((()=>{console.log("disableAutoDismiss updated",t)}))}function saveAutoDismissTime(){const e=document.getElementById("auto-dismiss-time").value;e.length<1||Number.isNaN(Number(e))?alert("Invalid value"):setStorage({autoDismissTime:e}).then((()=>{console.log("autoDismissTime updated",e)}))}document.getElementById("save-api-key-btn").addEventListener("click",saveAPIKey),document.getElementById("load-api-key-btn").addEventListener("click",loadAPIKey),document.getElementById("clear-api-key-btn").addEventListener("click",clearAPIKey),getStorageItem("disableAutoDismiss").then((e=>{document.getElementById("disable-auto-dismiss").checked=!!e})),document.getElementById("disable-auto-dismiss").addEventListener("change",autoDismissChanged),getStorageItem("autoDismissTime").then((e=>{document.getElementById("auto-dismiss-time").value=e??"2500"})),document.getElementById("auto-dismiss-time-btn").addEventListener("click",saveAutoDismissTime);

View file

@ -64,8 +64,8 @@
<div id="consent-container">
<h1>Omnivore</h1>
<p class="consent-text">Thank you for installing the <a href="https://omnivore.app">Omnivore</a> Firefox extension. Use this extension to save links to your Omnivore library.</p>
<p class="consent-text">If you are not familiar with Omnivore, you can learn more about us by reading <a href="https://blog.omnivore.app/p/getting-started-with-omnivore">Getting Started with Omnivore</a></p>
<p class="consent-text">Thank you for installing the <a href="https://omnivore.work">Omnivore</a> Firefox extension. Use this extension to save links to your Omnivore library.</p>
<p class="consent-text">If you are not familiar with Omnivore, you can learn more about us by reading <a href="https://blog.omnivore.work/p/getting-started-with-omnivore">Getting Started with Omnivore</a></p>
<p class="consent-text">&nbsp;</p>
@ -76,9 +76,9 @@
<p class="consent-text">Omnivore uses the following data:</p>
<ul>
<li><b>Tab Data</b>: When you invoke the extension, we access the content of the page you are currently viewing. This allows us to save the full content of the page, exactly how you are viewing it. That data is then transmitted to our servers and added to your library</li>
<li><b>Authentication cookie</b>: When you invoke the extension we access the auth cookie you used to authenticate at <a href="https://omnivore.app">https://omnivore.app</a>. This cookie identifies you as an Omnivore user and ties the saving operation to your Omnivore account.</li>
<li><b>Authentication cookie</b>: When you invoke the extension we access the auth cookie you used to authenticate at <a href="https://omnivore.work">https://omnivore.work</a>. This cookie identifies you as an Omnivore user and ties the saving operation to your Omnivore account.</li>
</ul>
<p class="consent-text">For full details about the data we collect you can read our <a href="https://docs.omnivore.app/about/privacy-statement.html">privacy statement</a></p>
<p class="consent-text">For full details about the data we collect you can read our <a href="https://docs.omnivore.work/about/privacy-statement.html">privacy statement</a></p>
<label for="consent-checkbox">
<input type="checkbox" id="consent-checkbox"> I consent to data collection

View file

@ -10,14 +10,14 @@
<h1>API Key</h1>
<p>Normally Omnivore uses an authentication cookie that is set when
you log in at <a href='https://omnivore.app'>omnivore.app</a>. If
you log in at <a href='https://omnivore.work'>omnivore.work</a>. If
your security settings do not allow the extension to access this
cookie (for example if you are using containers), you can set an
API token in the extension's local storage instead.
</p>
<p>To do this, create an API key at
<a href='https://omnivore.app/settings/api'>omnivore.app/settings/api</a>,
<a href='https://omnivore.work/settings/api'>omnivore.work/settings/api</a>,
paste it into the textbox below, and choose 'Save API Key'.
</p>
@ -49,4 +49,4 @@
</div>
<script src="/scripts/options.js"></script>
</body>
</html>
</html>

View file

@ -21,7 +21,7 @@ services:
context: .
dockerfile: ./packages/db/Dockerfile
container_name: "omnivore-migrate-test"
command: '/bin/sh ./packages/db/setup.sh' # Also create a demo user with email: demo@omnivore.app, password: demo
command: '/bin/sh ./packages/db/setup.sh' # Also create a demo user with email: demo@omnivore.work, password: demo
environment:
- PGPASSWORD=postgres
- PG_HOST=postgres-test

View file

@ -62,7 +62,7 @@ services:
context: .
dockerfile: ./packages/db/Dockerfile
container_name: "omnivore-migrate"
command: '/bin/sh ./packages/db/setup.sh' # Also create a demo user with email: demo@omnivore.app, password: demo_password
command: '/bin/sh ./packages/db/setup.sh' # Also create a demo user with email: demo@omnivore.work, password: demo_password
environment:
- PGPASSWORD=postgres
- POSTGRES_USER=postgres

View file

@ -36,10 +36,10 @@
1 - قم بتحميل وتثبيت إضافة أومنيفور لمتصفحك:
- [كروم ](https://omnivore.app/install/chrome)
- [ايدج](https://omnivore.app/install/edge)
- [فاير فوكس](https://omnivore.app/install/firefox)
- [سفري](https://omnivore.app/install/safari)
- [كروم ](https://omnivore.work/install/chrome)
- [ايدج](https://omnivore.work/install/edge)
- [فاير فوكس](https://omnivore.work/install/firefox)
- [سفري](https://omnivore.work/install/safari)
2 -انتقل إلى الصفحة التي ترغب في حفظها وانقر على زر أومنيفور في شريط أدوات المتصفح أو قائمة الإضافات.
3 - أو بدلاً عن ذلك يمكنك النقر بزر فأرة الحاسوب الأيمن على أي رابط تشعبي أو اختر **حفظ إلى أمنيفور** من القائمة.
@ -51,7 +51,7 @@
أفضل طريقة لحفظ الروابط من جهازك المحمول هي عبر تطبيق أمنيفور. يمكنك تحميل التطبيق هنا:
أي أو إس (ايباد أو أيفون) (https://omnivore.app/install/ios)
أي أو إس (ايباد أو أيفون) (https://omnivore.work/install/ios)
أندرويد
@ -66,7 +66,7 @@
1 - على موقع أو تطبيق أومنيفور، اضغط على صورتك أو الحروف الأولى أو الصورة الرمزية في الزاوية العليا اليمنى للوصول إلى قائمة الملف الشخصي.
اختر البريد الإلكتروني من القائمة.
2 - اضغط على إنشاء عنوان بريد إلكتروني جديد لإضافة عنوان بريد إلكتروني جديد (مثل: username-123_abc@inbox.omnivore.app) إلى القائمة.
2 - اضغط على إنشاء عنوان بريد إلكتروني جديد لإضافة عنوان بريد إلكتروني جديد (مثل: username-123_abc@inbox.omnivore.work) إلى القائمة.
3 - انقر على أيقونة النسخ بجوار عنوان البريد الإلكتروني
4 - انتقل إلى صفحة التسجيل للنشرةgetting-started-guide.md الإخبارية التي ترغب في الاشتراك فيها
5 - الصق عنوان البريد الإلكتروني أومنيفور في نموذج التسجيل
@ -75,7 +75,7 @@
### حفظ ملفات البي دي إيف من جهاز الماك
1 - قم بتثبيت تطبيقة الماك(https://omnivore.app/install/mac)
1 - قم بتثبيت تطبيقة الماك(https://omnivore.work/install/mac)
2 - قم بتحديد موقع ملف البي دي إف الذي ترغب في حفظه ثم انقر على إسم الملف بالزر الايمن من فأرة الحاسوب
3 - اختر شارك من القائمة واختر أومنيفور
4 - سيظهر الرابط في مكتبتك عندما تقوم بتحديثها في المرة القادمة
@ -150,7 +150,7 @@
### البحث
1 - للبحث في جميع الروابط التي قمت بحفظها، أدخل كلمة أو عبارة في شريط البحث
2 - يمكنك دمج الكلمات الرئيسية مع التسميات والفلاتر لتركيز بحثك بشكل أكبر[تعرف اكثر على البحث المتقدم ](https://docs.omnivore.app/using/searcl)
2 - يمكنك دمج الكلمات الرئيسية مع التسميات والفلاتر لتركيز بحثك بشكل أكبر[تعرف اكثر على البحث المتقدم ](https://docs.omnivore.work/using/searcl)
### الفيلتر

View file

@ -31,10 +31,10 @@ Omnivore 是一个**稍后阅读应用** ,让你保存和整理你在网上阅
1. 下载并安装浏览器的 Omnivore 扩展程序:
- [Chrome ](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome ](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. 导航到您要保存的页面,然后点击浏览器工具栏或扩展菜单中的 Omnivore 按钮。
3. 或者您可以在任何超链接上右键单击Maccommand+click然后从菜单中选择 **保存到 Omnivore**
@ -44,7 +44,7 @@ Omnivore 是一个**稍后阅读应用** ,让你保存和整理你在网上阅
从移动设备保存链接的最佳方法是通过 Omnivore 应用程序。您可以在此处下载此应用程序:
- [iOS (iPhone 或 iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone 或 iPad)](https://omnivore.work/install/ios)
- Android
安装移动应用程序后:
@ -56,7 +56,7 @@ Omnivore 是一个**稍后阅读应用** ,让你保存和整理你在网上阅
### 通过电子邮件订阅新闻稿件
1. 在 Omnivore 网站或应用程序上,点击右上角的照片、首字母或头像以访问个人资料菜单。从菜单中选择 **电子邮件**
2. 点击**创建新电子邮件地址**将新电子邮件地址 (例如: username-123_abc@inbox.omnivore.app) 添加到列表中。
2. 点击**创建新电子邮件地址**将新电子邮件地址 (例如: username-123_abc@inbox.omnivore.work) 添加到列表中。
3. 点按电子邮件地址旁边的拷贝图标。
4. 导航到您想要订阅的新闻稿件的注册页面。
5. 将 Omnivore 电子邮件地址粘贴到注册表中。
@ -64,7 +64,7 @@ Omnivore 是一个**稍后阅读应用** ,让你保存和整理你在网上阅
### 从 Mac 保存 PDF
1. 安装 [Mac 应用程序](https://omnivore.app/install/mac)。
1. 安装 [Mac 应用程序](https://omnivore.work/install/mac)。
2. 在 Mac 上,找到要保存的 PDF然后右键单击或 ctrl + 单击 文件名。
3. 从菜单中选择 **共享**,然后选择 **Omnivore**
4. 下次刷新链接时,该链接将显示在您的文库中。
@ -135,7 +135,7 @@ Omnivore 自动跟踪您在不同设备上的阅读进度,以便您可以轻
### 搜索
1. 要搜索所有已保存的链接,请在搜索栏中输入关键字或短语。
2. 您可以将关键字与标签和筛选器结合使用,以进一步集中搜索。 [了解有关高级搜索的更多信息](https://docs.omnivore.app/using/search.html)。
2. 您可以将关键字与标签和筛选器结合使用,以进一步集中搜索。 [了解有关高级搜索的更多信息](https://docs.omnivore.work/using/search.html)。
### 筛选器 (过滤器)

View file

@ -31,10 +31,10 @@ Es gibt fünf grundlegende Arten, um Links zu Seiten oder Artikeln zu speichern,
1. Laden Sie die Omnivore-Erweiterung für Ihren Browser herunter und installieren Sie sie:
- [Chrome](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. Navigieren Sie zu der Seite, die Sie speichern möchten, und klicken Sie auf die Omnivore-Schaltfläche in Ihrer Browser-Symbolleiste oder im Erweiterungen-Menü.
3. Alternativ können Sie mit der rechten Maustaste (Befehl+Klick auf dem Mac) auf einen beliebigen Hyperlink klicken und **Zu Omnivore hinzufügen** aus dem Menü auswählen.
@ -44,7 +44,7 @@ Es gibt fünf grundlegende Arten, um Links zu Seiten oder Artikeln zu speichern,
Die beste Möglichkeit, Links von Ihrem mobilen Gerät zu speichern, besteht über die Omnivore-App. Sie können die App hier herunterladen:
- [iOS (iPhone oder iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone oder iPad)](https://omnivore.work/install/ios)
- Android
Nachdem die mobile App installiert ist:
@ -56,7 +56,7 @@ Nachdem die mobile App installiert ist:
### Newsletter-Abonnements per E-Mail
1. Klicken Sie auf der Omnivore-Website oder App auf Ihr Foto, Ihre Initialen oder Ihr Avatar in der oberen rechten Ecke, um das Profilmenü zu öffnen. Wählen Sie **E-Mails** aus dem Menü.
2. Klicken Sie auf **Neue E-Mail-Adresse erstellen**, um eine neue E-Mail-Adresse (z.B. username-123_abc@inbox.omnivore.app) zur Liste hinzuzufügen.
2. Klicken Sie auf **Neue E-Mail-Adresse erstellen**, um eine neue E-Mail-Adresse (z.B. username-123_abc@inbox.omnivore.work) zur Liste hinzuzufügen.
3. Klicken Sie auf das Kopier-Symbol neben der E-Mail-Adresse.
4. Navigieren Sie zur Anmeldeseite des Newsletters, den Sie abonnieren möchten.
5. Fügen Sie die Omnivore-E-Mail-Adresse in das Anmeldeformular ein.
@ -64,7 +64,7 @@ Nachdem die mobile App installiert ist:
### PDFs von einem Mac speichern
1. Installieren Sie die [Mac App](https://omnivore.app/install/mac).
1. Installieren Sie die [Mac App](https://omnivore.work/install/mac).
2. Suchen Sie auf Ihrem Mac das PDF, das Sie speichern möchten und klicken Sie mit der rechten Maustaste oder Strg+Klick auf den Dateinamen.
3. Wählen Sie **Teilen** aus dem Menü und wählen Sie **Omnivore**.
4. Der Link wird beim nächsten Aktualisieren in Ihrer Bibliothek angezeigt
@ -161,7 +161,7 @@ Standardmäßig zeigt der Posteingang der Bibliothek alle gespeicherten Links an
1. Um in all Ihren gespeicherten Links zu suchen, geben Sie ein Schlüsselwort oder eine Phrase in die Suchleiste ein.
2. Sie können Schlüsselworte mit Labels und Filtern kombinieren, um Ihre Suche noch weiter zu fokussieren. [Erfahren Sie mehr über die erweiterte Suche](https://docs.omnivore.app/using/search.html).
2. Sie können Schlüsselworte mit Labels und Filtern kombinieren, um Ihre Suche noch weiter zu fokussieren. [Erfahren Sie mehr über die erweiterte Suche](https://docs.omnivore.work/using/search.html).
### Filter
@ -197,4 +197,4 @@ Mit dem Omnivore's Logseq-Plugin können Sie alle Ihre gespeicherten Artikel, Hi
### Webhooks
Omnivore kann Webhooks auslösen, wenn Sie einen Link speichern oder Highlights zu einer Seite hinzufügen, die Sie gerade lesen. [Dieses Beispiel](https://briansunter.com/graph/#/page/omnivore-logseq-guide) zeigt, wie Webhooks verwendet werden, um alle gespeicherten Links in eine Google Sheets-Tabelle zu schreiben, die auf einem Google Drive gespeichert ist.
Omnivore kann Webhooks auslösen, wenn Sie einen Link speichern oder Highlights zu einer Seite hinzufügen, die Sie gerade lesen. [Dieses Beispiel](https://briansunter.com/graph/#/page/omnivore-logseq-guide) zeigt, wie Webhooks verwendet werden, um alle gespeicherten Links in eine Google Sheets-Tabelle zu schreiben, die auf einem Google Drive gespeichert ist.

View file

@ -31,10 +31,10 @@ There are five main ways to save links to pages or articles that you wish to rea
1. Download and install the Omnivore extension for your browser:
- [Chrome ](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome ](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. Navigate to the page you wish to save and tap the Omnivore button in your browsers toolbar or Extensions menu.
3. Alternatively, you can right-click (command+click on Mac) on any hyperlink and select **Save to Omnivore** from the menu.
@ -44,7 +44,7 @@ There are five main ways to save links to pages or articles that you wish to rea
The best way to save links from your mobile device is via the Omnivore app. You can download the app here:
- [iOS (iPhone or iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone or iPad)](https://omnivore.work/install/ios)
- Android
Once the mobile app is installed:
@ -56,7 +56,7 @@ Once the mobile app is installed:
### Newsletter Subscriptions via Email
1. On the Omnivore website or app, tap your photo, initial, or avatar in the top right corner to access the profile menu. Select **Emails** from the menu.
2. Tap **Create a New Email Address** to add a new email address (ex: username-123_abc@inbox.omnivore.app) to the list.
2. Tap **Create a New Email Address** to add a new email address (ex: username-123_abc@inbox.omnivore.work) to the list.
3. Click the Copy icon next to the email address.
4. Navigate to the signup page for the newsletter you wish to subscribe to. \
5. Paste the Omnivore email address into the signup form.
@ -64,7 +64,7 @@ Once the mobile app is installed:
### Saving PDFs from a Mac
1. Install the [Mac App](https://omnivore.app/install/mac).
1. Install the [Mac App](https://omnivore.work/install/mac).
2. On your Mac, locate the PDF you wish to save and right-click or ctrl+click on the file name.
3. Select **Share** from the menu and choose **Omnivore**.
4. The link will appear in your Library the next time you refresh it.
@ -135,7 +135,7 @@ By default, the Library inbox displays all links you have saved. To manage your
### Search
1. To search through all your saved links, enter a keyword or phrase in the search bar.
2. You can combine keywords with labels and filters to focus your search even further. [Learn more about advanced search](https://docs.omnivore.app/using/search.html).
2. You can combine keywords with labels and filters to focus your search even further. [Learn more about advanced search](https://docs.omnivore.work/using/search.html).
### Filters

View file

@ -31,10 +31,10 @@ Hay cinco formas principales de guardar los enlaces a páginas o artículos que
1. Descarga e instala la extensión Omnivore para tu navegador:
- [Chrome ](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome ](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. Navega hasta la página que quieres guardar y toca el botón **Omnivore** en la barra de herramientas de tu navegador o en el menú Extensiones.
3. Como alternativa, puedes hacer clic con el botón derecho (command+clic en Mac) en cualquier enlace y seleccionar **Guardar en Omnivore** en el menú.
@ -44,7 +44,7 @@ Hay cinco formas principales de guardar los enlaces a páginas o artículos que
La mejor forma de guardar enlaces desde tu dispositivo móvil es a través de la aplicación Omnivore. Puedes descargar la aplicación aquí:
- [iOS (iPhone or iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone or iPad)](https://omnivore.work/install/ios)
- Android
Una vez instalada la aplicación móvil:
@ -56,7 +56,7 @@ Una vez instalada la aplicación móvil:
### Suscripciones a boletines (newsletters) por correo electrónico
1. En el sitio web o la aplicación Omnivore, clic en tu foto, iniciales o avatar en la esquina superior derecha para acceder al menú de perfil. Selecciona **Correos electrónicos** en el menú.
2. Clic en **Crear una nueva dirección de correo electrónico** para agregar una nueva dirección de correo electrónico (por ejemplo, nombre de usuario-123_abc@inbox.omnivore.app) a la lista.
2. Clic en **Crear una nueva dirección de correo electrónico** para agregar una nueva dirección de correo electrónico (por ejemplo, nombre de usuario-123_abc@inbox.omnivore.work) a la lista.
3. Haz clic en el icono **Copiar** junto a la dirección de correo electrónico.
4. Navega hasta la página de registro del boletín (newsletter) al que quieres suscribirte.
5. Pega la dirección de correo electrónico de Omnivore en el formulario de registro.
@ -64,7 +64,7 @@ Una vez instalada la aplicación móvil:
### Guardar PDFs desde un Mac
1. Instala la [aplicación Mac] (https://omnivore.app/install/mac).
1. Instala la [aplicación Mac] (https://omnivore.work/install/mac).
2. En tu Mac, busca el PDF que deseas guardar y haz clic con el botón derecho o ctrl+clic en el nombre del archivo.
3. Selecciona **Compartir** en el menú y elige **Omnívore**.
4. El enlace aparecerá en tu Biblioteca la próxima vez que la actualices.
@ -135,7 +135,7 @@ De forma predeterminada, la bandeja de entrada de la biblioteca muestra todos lo
### Buscar
1. Para buscar en todos sus enlaces guardados, escribe una palabra clave o frase en la barra de búsqueda.
2. Puedes combinar palabras clave con etiquetas y filtros para refinar aún más tu búsqueda. [Saber más sobre búsqueda avanzada](https://docs.omnivore.app/using/search.html).
2. Puedes combinar palabras clave con etiquetas y filtros para refinar aún más tu búsqueda. [Saber más sobre búsqueda avanzada](https://docs.omnivore.work/using/search.html).
### Filtros

View file

@ -31,10 +31,10 @@ Il existe cinq façons de sauvegarder des liens vers des pages ou des articles q
1. Téléchargez et installez l'extension Omnivore pour votre navigateur :
- [Chrome ](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome ](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. Accédez à la page que vous souhaitez enregistrer et appuyez sur le bouton Omnivore dans la barre d'outils de votre navigateur ou dans le menu Extensions.
3. Alternativement, vous pouvez cliquer avec le bouton droit (commande + clic sur Mac) sur n'importe quel lien hypertexte et sélectionner **Enregistrer dans Omnivore** dans le menu.
@ -44,7 +44,7 @@ Il existe cinq façons de sauvegarder des liens vers des pages ou des articles q
La meilleure façon d'enregistrer des liens à partir de votre appareil mobile est via l'application Omnivore. Vous pouvez télécharger l'application ici :
- [iOS (iPhone ou iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone ou iPad)](https://omnivore.work/install/ios)
- Android
Une fois que l'application mobile est installée :
@ -56,7 +56,7 @@ Une fois que l'application mobile est installée :
### Abonnements à la newsletter via e-mail
1. Sur le site web ou l'application Omnivore, appuyez sur votre photo, initiale ou avatar dans le coin supérieur droit pour accéder au menu de profil. Sélectionnez **Emails** dans le menu.
2. Appuyez sur **Create a New Email Address** pour ajouter une nouvelle adresse e-mail (par exemple : username-123_abc@inbox.omnivore.app) à la liste.
2. Appuyez sur **Create a New Email Address** pour ajouter une nouvelle adresse e-mail (par exemple : username-123_abc@inbox.omnivore.work) à la liste.
3. Cliquez sur l'icône Copier à côté de l'adresse e-mail.
4. Accédez à la page d'inscription pour la newsletter à laquelle vous souhaitez vous abonner.
5. Collez l'adresse e-mail Omnivore dans le formulaire d'inscription.
@ -64,7 +64,7 @@ Une fois que l'application mobile est installée :
### Enregistrement de PDF à partir d'un Mac
1. Installez [l'application Mac](https://omnivore.app/install/mac).
1. Installez [l'application Mac](https://omnivore.work/install/mac).
2. Sur votre Mac, localisez le PDF que vous souhaitez enregistrer et faites un clic droit ou ctrl + clic sur le nom de fichier.
3. Sélectionnez **Share** dans le menu et choisissez **Omnivore**.
4. Le lien apparaîtra dans votre bibliothèque la prochaine fois que vous la rafraîchirez.
@ -135,7 +135,7 @@ Par défaut, la boîte de réception de la bibliothèque affiche tous les liens
### Recherche
1. Pour rechercher parmi tous les liens que vous avez enregistrés, entrez un mot-clé ou une phrase dans la barre de recherche.
2. Vous pouvez combiner les mots-clés avec les étiquettes et les filtres pour cibler encore plus votre recherche. [En savoir plus sur la recherche avancée.](https://docs.omnivore.app/using/search.html).
2. Vous pouvez combiner les mots-clés avec les étiquettes et les filtres pour cibler encore plus votre recherche. [En savoir plus sur la recherche avancée.](https://docs.omnivore.work/using/search.html).
### Filtres

View file

@ -30,10 +30,10 @@
1. अपने ब्राउज़र के लिए ओम्निवोर एक्सटेंशन डाउनलोड और इंस्टॉल करें:
- [ क्रोम ](https://omnivore.app/install/chrome)
- [ एज ](https://omnivore.app/install/edge)
- [ फ़ायरफ़ॉक्स ](https://omnivore.app/install/firefox)
- [ सफारी ](https://omnivore.app/install/safari)
- [ क्रोम ](https://omnivore.work/install/chrome)
- [ एज ](https://omnivore.work/install/edge)
- [ फ़ायरफ़ॉक्स ](https://omnivore.work/install/firefox)
- [ सफारी ](https://omnivore.work/install/safari)
2. उस पृष्ठ पर जाएँ जिसे आप सहेजना चाहते हैं और अपने ब्राउज़र के टूलबार या एक्सटेंशन मेनू में ओम्निवोर बटन पर टैप करें।
3. वैकल्पिक रूप से, आप किसी भी हाइपरलिंक पर राइट-क्लिक (मैक पर कमांड+क्लिक) कर सकते हैं और मेनू से सेव टू ओम्निवोर का चयन कर सकते हैं।
@ -43,7 +43,7 @@
अपने मोबाइल डिवाइस से लिंक सहेजने का सबसे अच्छा तरीका ओम्निवोर ऐप है। आप यहां ऐप डाउनलोड कर सकते हैं:
- [ आईओएस (आईफोन या आईपैड) ](https://omnivore.app/install/ios)
- [ आईओएस (आईफोन या आईपैड) ](https://omnivore.work/install/ios)
- एंड्रॉयड
एक बार मोबाइल ऐप इंस्टॉल हो जाए:
@ -55,7 +55,7 @@
### ईमेल के माध्यम से न्यूज़लेटर सदस्यताएँ
1. ओम्निवोर वेबसाइट या ऐप पर, प्रोफ़ाइल मेनू तक पहुंचने के लिए ऊपरी दाएं कोने में अपनी फोटो, नाम के पहले अक्षर या अवतार पर टैप करें। मेनू से ईमेल चुनें.
2. सूची में नया ईमेल पता (उदा: username-123_abc@inbox.omnivore.app) जोड़ने के लिए नया ईमेल पता बनाएं पर टैप करें।
2. सूची में नया ईमेल पता (उदा: username-123_abc@inbox.omnivore.work) जोड़ने के लिए नया ईमेल पता बनाएं पर टैप करें।
3. ईमेल पते के आगे कॉपी आइकन पर क्लिक करें।
4. जिस न्यूज़लेटर की आप सदस्यता लेना चाहते हैं उसके लिए साइनअप पृष्ठ पर जाएँ।
5. ओम्निवोर ईमेल पते को साइनअप फॉर्म में चिपकाएँ।
@ -63,7 +63,7 @@
### मैक से पीडीएफ़ सहेजना
1. मैक ऐप इंस्टॉल करें। [मैक ऐप](https://omnivore.app/install/mac)
1. मैक ऐप इंस्टॉल करें। [मैक ऐप](https://omnivore.work/install/mac)
2. अपने मैक पर, वह पीडीएफ ढूंढें जिसे आप सहेजना चाहते हैं और फ़ाइल नाम पर राइट-क्लिक करें या Ctrl+click करें।
3. मेनू से शेयर चुनें और ओम्निवोर चुनें।
4. गली बार जब आप इसे रीफ्रेश करेंगे तो लिंक आपकी लाइब्रेरी में दिखाई देगा।
@ -155,4 +155,4 @@
### वेबहुक
जब आप कोई लिंक सहेजते हैं या जिस पृष्ठ को आप पढ़ रहे हैं उसमें हाइलाइट्स जोड़ते हैं तो ओम्निवोर वेबहुक को ट्रिगर कर सकता है। <span style="text-decoration:underline;">यह उदाहरण </span> Google ड्राइव पर संग्रहीत Google शीट स्प्रेडशीट में सभी सहेजे गए लिंक लिखने के लिए वेबहुक का उपयोग किया जा रहा है।
जब आप कोई लिंक सहेजते हैं या जिस पृष्ठ को आप पढ़ रहे हैं उसमें हाइलाइट्स जोड़ते हैं तो ओम्निवोर वेबहुक को ट्रिगर कर सकता है। <span style="text-decoration:underline;">यह उदाहरण </span> Google ड्राइव पर संग्रहीत Google शीट स्प्रेडशीट में सभी सहेजे गए लिंक लिखने के लिए वेबहुक का उपयोग किया जा रहा है।

View file

@ -31,10 +31,10 @@ Omnivoreは、オンラインで読んだものを保存し整理できる **後
1. ブラウザ用のOmnivore拡張機能をダウンロードしてインストールします:
- [Chrome](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. 保存したいページに移動し、ブラウザのツールバーまたは拡張機能メニューにあるOmnivoreボタンをタップします。
3. または、リンクを右クリックMacの場合はコマンド+クリック)し、メニューから**Omnivoreに保存**を選択できます。
@ -44,7 +44,7 @@ Omnivoreは、オンラインで読んだものを保存し整理できる **後
モバイルデバイスからリンクを保存する最良の方法は、Omnivoreアプリを使用することです。アプリはこちらからダウンロードできます:
- [iOSiPhoneまたはiPad](https://omnivore.app/install/ios)
- [iOSiPhoneまたはiPad](https://omnivore.work/install/ios)
- Android
モバイルアプリをインストールしたら:
@ -56,7 +56,7 @@ Omnivoreは、オンラインで読んだものを保存し整理できる **後
### メール経由のニュースレター購読
1. Omnivoreのウェブサイトまたアプリで、右上隅にある写真、イニシャル、またはアバターをタップしてプロファイルメニューにアクセスします。メニューから**Eメール**を選択します。
2. **新しいメールアドレスを作成**をタップして、リストに新しいメールアドレス(例: username-123_abc@inbox.omnivore.app)を追加します。
2. **新しいメールアドレスを作成**をタップして、リストに新しいメールアドレス(例: username-123_abc@inbox.omnivore.work)を追加します。
3. メールアドレスの横にあるコピーのアイコンをクリックします。
4. 購読したいニュースレターの登録ページに移動します。
5. Omnivoreのメールアドレスを登録フォームに貼り付けます。
@ -64,7 +64,7 @@ Omnivoreは、オンラインで読んだものを保存し整理できる **後
### MacからPDFを保存
1. [Macアプリ](https://omnivore.app/install/mac)をインストールします。
1. [Macアプリ](https://omnivore.work/install/mac)をインストールします。
2. Mac上で保存したいPDFを見つけ、ファイル名を右クリックまたはCtrl+クリックします。
3. メニューから**共有**を選択し、**Omnivore**を選びます。
4. リンクは、次にライブラリをリフレッシュすると表示されます。
@ -134,7 +134,7 @@ Omnivoreは異なるデバイス間での読書の進行状況を自動的に追
### 検索
1. 保存したすべてのリンクを検索するには、検索バーにキーワードやフレーズを入力します。
2. キーワードをラベルやフィルタと組み合わせて、さらに絞り込んだ検索を行うことができます。[詳細な検索について詳しく](https://docs.omnivore.app/using/search.html)。
2. キーワードをラベルやフィルタと組み合わせて、さらに絞り込んだ検索を行うことができます。[詳細な検索について詳しく](https://docs.omnivore.work/using/search.html)。
### フィルタ

View file

@ -31,10 +31,10 @@ Daha sonra okumak istediğiniz sayfaların veya makalelerin bağlantılarını k
1. Tarayıcınız için Omnivore uzantısını indirin ve yükleyin:
- [Chrome](https://omnivore.app/install/chrome)
- [Edge](https://omnivore.app/install/edge)
- [Firefox](https://omnivore.app/install/firefox)
- [Safari](https://omnivore.app/install/safari)
- [Chrome](https://omnivore.work/install/chrome)
- [Edge](https://omnivore.work/install/edge)
- [Firefox](https://omnivore.work/install/firefox)
- [Safari](https://omnivore.work/install/safari)
2. Kaydetmek istediğiniz sayfaya gidin ve tarayıcınızın araç çubuğundaki veya Uzantılar menüsündeki Omnivore düğmesine dokunun.
3. Alternatif olarak, herhangi bir linke sağ tıklayabilir (Mac'te command+tıklama) ve menüden **Save to Omnivore** seçeneğine tıklayabilirsiniz.
@ -44,7 +44,7 @@ Daha sonra okumak istediğiniz sayfaların veya makalelerin bağlantılarını k
Mobil cihazınızdan bağlantıları kaydetmenin en iyi yolu Omnivore uygulamasıdır. Uygulamayı buradan indirebilirsiniz:
- [iOS (iPhone veya iPad)](https://omnivore.app/install/ios)
- [iOS (iPhone veya iPad)](https://omnivore.work/install/ios)
- Android
Mobil uygulama yüklendikten sonra:
@ -56,7 +56,7 @@ Mobil uygulama yüklendikten sonra:
### E-posta ile Bülten Abonelikleri
1. Omnivore web sitesinde veya uygulamasında, profil menüsüne erişmek için sağ üst köşedeki fotoğrafınıza, baş harfinize veya avatarınıza dokunun. Menüden **E-postalar** öğesini seçin.
2. Listeye yeni bir e-posta adresi (örn. username-123_abc@inbox.omnivore.app) eklemek için **Yeni E-posta Adresi Oluştur** öğesine dokunun.
2. Listeye yeni bir e-posta adresi (örn. username-123_abc@inbox.omnivore.work) eklemek için **Yeni E-posta Adresi Oluştur** öğesine dokunun.
3. E-posta adresinin yanındaki kopyala simgesine tıklayın.
4. Abone olmak istediğiniz haber bülteninin kayıt sayfasına gidin.
5. Omnivore e-posta adresini kayıt formuna yapıştırın.
@ -64,7 +64,7 @@ Mobil uygulama yüklendikten sonra:
### Mac bir cihazdan PDF kaydetme
1. [Mac uygulaması](https://omnivore.app/install/mac)nı kurun.
1. [Mac uygulaması](https://omnivore.work/install/mac)nı kurun.
2. Mac'inizde kaydetmek istediğiniz dosyanın ismine sağ tıklayın veya ctrl+tıklayın.
3. Menüden **Paylaş**'a tıklayın ve **Omnivore**'u seçin.
4. Bağlantı, bir sonraki yenilemenizde kitaplığınızda görünecektir.
@ -135,7 +135,7 @@ Varsayılan olarak, kitaplık gelen kutusu kaydettiğiniz tüm bağlantıları g
### Arama
1. Kaydettiğiniz tüm bağlantıları aramak için arama çubuğuna bir anahtar kelime veya ifade girin.
2. Aramanızı daha da daraltmak için etiketleri ve filtreleri anahtar kelimelerle birleştirebilirsiniz. [Daha fazla bilgi için gelişmiş arama hakkında bunu inceleyebilirsiniz](https://docs.omnivore.app/using/search.html).
2. Aramanızı daha da daraltmak için etiketleri ve filtreleri anahtar kelimelerle birleştirebilirsiniz. [Daha fazla bilgi için gelişmiş arama hakkında bunu inceleyebilirsiniz](https://docs.omnivore.work/using/search.html).
### Filtreler

View file

@ -264,7 +264,7 @@ export const saveAttachmentJob = async (data: EmailJobData) => {
uploadFileData.fileName
)
const uploadFileUrlOverride = `https://omnivore.app/attachments/${uploadFilePathName}`
const uploadFileUrlOverride = `https://omnivore.work/attachments/${uploadFilePathName}`
const uploadFileHash = uploadFileDetails.md5Hash
const itemType =
uploadFileData.contentType === 'application/pdf'

View file

@ -19,7 +19,7 @@ import {
import { DEFAULT_HOME_PATH } from '../../utils/navigation'
const appleBaseURL = 'https://appleid.apple.com'
const audienceName = 'app.omnivore.app'
const audienceName = 'app.omnivore.work'
const webAudienceName = 'app.omnivore'
async function fetchApplePublicKey(kid: string): Promise<string | null> {

View file

@ -393,8 +393,8 @@ export function authRouter() {
}
// If we do have an auth token, we want to try redirecting to the
// sso endpoint which will set a cookie for the client domain (omnivore.app)
// after we set a cookie for the API domain (api-prod.omnivore.app)
// sso endpoint which will set a cookie for the client domain (omnivore.work)
// after we set a cookie for the API domain (api-prod.omnivore.work)
const authToken = await createWebAuthToken(user.id)
if (authToken) {
const ssoToken = createSsoToken(authToken, redirectUri)

View file

@ -146,7 +146,7 @@ export function emailAttachmentRouter() {
uploadFile.fileName
)
const uploadFileUrlOverride = `https://omnivore.app/attachments/${uploadFilePathName}`
const uploadFileUrlOverride = `https://omnivore.work/attachments/${uploadFilePathName}`
const uploadFileHash = uploadFileDetails.md5Hash
const itemType =
uploadFile.contentType === 'application/pdf'

View file

@ -103,18 +103,18 @@ export const findNewsletterEmailByAddress = async (
}
const createRandomEmailAddress = (userName: string, length: number): string => {
// format: hongbo-sduhfsjh1e@inbox.omnivore.app
// format: hongbo-sduhfsjh1e@inbox.omnivore.work
const inbox =
'inbox' + (env.server.apiEnv === 'prod' ? '' : `-${env.server.apiEnv}`)
/* nanoid can generate a random string ending with -
which is not allowed as a last character in email address.
So we append a 'e' to all random strings.
when rand is sdfsdf-: jacksonh-sdfsdf-e@inbox.omnivore.app
when rand is abcdef: jacksonh-abcdefe@inbox.omnivore.app
when rand is sdfsdf-: jacksonh-sdfsdf-e@inbox.omnivore.work
when rand is abcdef: jacksonh-abcdefe@inbox.omnivore.work
*/
return `${userName}-${nanoid(length)}e@${
env.email.domain || `@${inbox}.omnivore.app`
env.email.domain || `@${inbox}.omnivore.work`
}`
}

View file

@ -45,7 +45,7 @@ export const sendWithMailJet = async (
Messages: [
{
From: {
Email: 'no-reply@omnivore.app',
Email: 'no-reply@omnivore.work',
},
To: [
{

View file

@ -104,7 +104,7 @@ export const uploadFile = async (
const uploadFilePathName = generateUploadFilePathName(uploadFileId, fileName)
// If this is a file URL, we swap in a special URL
if (isFileUrl(url)) {
url = `https://omnivore.app/attachments/${uploadFilePathName}`
url = `https://omnivore.work/attachments/${uploadFilePathName}`
}
const uploadFileData = await authTrx((t) =>

View file

@ -47,7 +47,7 @@ export const softDeleteUser = async (userId: string) => {
return t.getRepository(User).update(userId, {
status: StatusType.Deleted,
email: `deleted_user_${userId}@omnivore.app`,
email: `deleted_user_${userId}@omnivore.work`,
sourceUserId: `deleted_user_${userId}`,
})
},

View file

@ -3,9 +3,9 @@ import normalizeUrl from 'normalize-url'
const BLOCKED_SITES = [
'https://mail.google.com/',
'https://accounts.google.com/',
'https://dev.omnivore.app',
'https://demo.omnivore.app',
'https://omnivore.app',
'https://dev.omnivore.work',
'https://demo.omnivore.work',
'https://omnivore.work',
]
export const isSiteBlockedForParse = (urlToParse: string): boolean => {

View file

@ -3,12 +3,12 @@ import { env } from '../env'
export const corsConfig = {
credentials: true,
origin: [
'https://omnivore.app',
'https://dev.omnivore.app',
'https://demo.omnivore.app',
'https://web-prod.omnivore.app',
'https://web-dev.omnivore.app',
'https://web-demo.omnivore.app',
'https://omnivore.work',
'https://dev.omnivore.work',
'https://demo.omnivore.work',
'https://web-prod.omnivore.work',
'https://web-dev.omnivore.work',
'https://web-demo.omnivore.work',
'http://localhost:3000',
env.dev.isLocal && 'https://studio.apollographql.com',
env.client.url,

View file

@ -77,7 +77,7 @@ const DOM_PURIFY_CONFIG = {
}
const ARTICLE_PREFIX = 'omnivore:'
export const FAKE_URL_PREFIX = 'https://omnivore.app/no_url?q='
export const FAKE_URL_PREFIX = 'https://omnivore.work/no_url?q='
export const rssParserConfig = () => {
const fingerprint = generateFingerprint()

View file

@ -66,7 +66,7 @@ export const createTestUser = async (
const [newUser] = await createUser({
provider: 'GOOGLE',
sourceUserId: 'fake-user-id-' + name,
email: `${name}@omnivore.app`,
email: `${name}@omnivore.work`,
username: name,
bio: `i am ${name}`,
name: name,
@ -82,7 +82,7 @@ export const createUserWithoutProfile = async (name: string): Promise<User> => {
return userRepository.save({
source: 'GOOGLE',
sourceUserId: 'fake-user-id-' + name,
email: `${name}@omnivore.app`,
email: `${name}@omnivore.work`,
name: name,
})
}
@ -115,7 +115,7 @@ export const createTestLibraryItem = async (
const item = {
user: { id: userId },
title: 'test title',
originalUrl: `https://blog.omnivore.app/test-url-${generateFakeUuid()}`,
originalUrl: `https://blog.omnivore.work/test-url-${generateFakeUuid()}`,
slug: 'test-with-omnivore',
}

View file

@ -40,7 +40,7 @@ class MockFile {
}
getSignedUrl() {
return ['https://signed-url.upload.omnivore.app']
return ['https://signed-url.upload.omnivore.work']
}
getMetadata() {
@ -48,7 +48,7 @@ class MockFile {
}
publicUrl() {
return 'https://public-url.upload.omnivore.app'
return 'https://public-url.upload.omnivore.work'
}
makePublic() {

View file

@ -369,7 +369,7 @@ describe('Article API', () => {
context('when saving from document', () => {
before(() => {
url = 'https://blog.omnivore.app/p/testing-is-fun-with-omnivore'
url = 'https://blog.omnivore.work/p/testing-is-fun-with-omnivore'
source = 'puppeteer-parse'
document = '<p>test</p>'
title = 'new title'
@ -389,7 +389,7 @@ describe('Article API', () => {
context('when saving an archived article', () => {
before(async () => {
url = 'https://blog.omnivore.app/saving-archived-article.com'
url = 'https://blog.omnivore.work/saving-archived-article.com'
source = 'puppeteer-parse'
document = '<p>test</p>'
title = 'new title'
@ -436,7 +436,7 @@ describe('Article API', () => {
slug: realSlug,
readingProgressTopPercent: 100,
user,
originalUrl: 'https://blog.omnivore.app/test-with-omnivore',
originalUrl: 'https://blog.omnivore.work/test-with-omnivore',
directionality: DirectionalityType.RTL,
}
const item = await createOrUpdateLibraryItem(
@ -538,7 +538,7 @@ describe('Article API', () => {
describe('SavePage', () => {
const title = 'Example Title'
let url = 'https://blog.omnivore.app'
let url = 'https://blog.omnivore.work'
const originalContent =
'<html dir="rtl"><body><div>Example Content</div></body></html>'
const source = 'puppeteer-parse'
@ -566,7 +566,7 @@ describe('Article API', () => {
context('when we save a item that is already archived', () => {
before(() => {
url = 'https://blog.omnivore.app/new-url'
url = 'https://blog.omnivore.work/new-url'
})
after(async () => {
@ -617,7 +617,7 @@ describe('Article API', () => {
context('when we also want to save labels and archives the item', () => {
before(() => {
url = 'https://blog.omnivore.app/new-url-2'
url = 'https://blog.omnivore.work/new-url-2'
})
after(async () => {
@ -677,7 +677,7 @@ describe('Article API', () => {
describe('SaveUrl', () => {
let query = ''
const url = 'https://blog.omnivore.app/new-url-1'
const url = 'https://blog.omnivore.work/new-url-1'
before(() => {
sinon.replace(
@ -717,7 +717,7 @@ describe('Article API', () => {
user,
title: 'test title',
readableContent: '<p>test</p>',
originalUrl: 'https://blog.omnivore.app/setBookmarkArticle',
originalUrl: 'https://blog.omnivore.work/setBookmarkArticle',
slug: 'test-with-omnivore',
}
const item = await createOrUpdateLibraryItem(
@ -832,7 +832,7 @@ describe('Article API', () => {
await createOrUpdateLibraryItem(
{
user: { id: user.id },
originalUrl: 'https://blog.omnivore.app/setBookmarkArticle',
originalUrl: 'https://blog.omnivore.work/setBookmarkArticle',
slug: 'test-with-omnivore',
readableContent: '<p>test</p>',
title: 'test title',
@ -875,7 +875,7 @@ describe('Article API', () => {
const item = await createOrUpdateLibraryItem(
{
user: { id: user.id },
originalUrl: 'https://blog.omnivore.app/setBookmarkArticle',
originalUrl: 'https://blog.omnivore.work/setBookmarkArticle',
slug: 'test-with-omnivore',
readableContent: '<p>test</p>',
title: 'test title',
@ -917,7 +917,7 @@ describe('Article API', () => {
context('when the file is uploaded', () => {
before(async () => {
url = 'https://blog.omnivore.app/'
url = 'https://blog.omnivore.work/'
const uploadFile = await getRepository(UploadFile).save({
fileName: 'test.pdf',
contentType: 'application/pdf',
@ -938,7 +938,7 @@ describe('Article API', () => {
})
describe('Search API', () => {
const url = 'https://blog.omnivore.app/p/getting-started-with-omnivore'
const url = 'https://blog.omnivore.work/p/getting-started-with-omnivore'
const items: LibraryItem[] = []
const highlights: Highlight[] = []
const searchedKeyword = 'aaabbbccc'
@ -2021,7 +2021,7 @@ describe('Article API', () => {
title: 'typeahead search item',
readableContent: '<p>test</p>',
slug: '',
originalUrl: `https://blog.omnivore.app/p/typeahead-search-${i}`,
originalUrl: `https://blog.omnivore.work/p/typeahead-search-${i}`,
}
const item = await createOrUpdateLibraryItem(
itemToSave,
@ -2099,7 +2099,7 @@ describe('Article API', () => {
title: 'test item',
slug: '',
readableContent: '<p>test</p>',
originalUrl: `https://blog.omnivore.app/p/updates-since-${i}`,
originalUrl: `https://blog.omnivore.work/p/updates-since-${i}`,
user,
}
const item = await createOrUpdateLibraryItem(
@ -2229,7 +2229,7 @@ describe('Article API', () => {
slug: '',
state:
i == 0 ? LibraryItemState.Failed : LibraryItemState.Succeeded,
originalUrl: `https://blog.omnivore.app/p/bulk-action-${i}`,
originalUrl: `https://blog.omnivore.work/p/bulk-action-${i}`,
},
user.id,
undefined,
@ -2271,7 +2271,7 @@ describe('Article API', () => {
title: 'test item',
readableContent: '<p>test</p>',
slug: 'test-item',
originalUrl: `https://blog.omnivore.app/p/bulk-action-archive`,
originalUrl: `https://blog.omnivore.work/p/bulk-action-archive`,
publishedAt: new Date('2023-10-01'),
},
{
@ -2279,7 +2279,7 @@ describe('Article API', () => {
title: 'test item 2',
readableContent: '<p>test</p>',
slug: 'test-item-2',
originalUrl: `https://blog.omnivore.app/p/bulk-action-archive-2`,
originalUrl: `https://blog.omnivore.work/p/bulk-action-archive-2`,
publishedAt: new Date('2023-10-02'),
},
],
@ -2324,7 +2324,7 @@ describe('Article API', () => {
slug: '',
state:
i == 0 ? LibraryItemState.Failed : LibraryItemState.Succeeded,
originalUrl: `https://blog.omnivore.app/p/bulk-action-${i}`,
originalUrl: `https://blog.omnivore.work/p/bulk-action-${i}`,
},
user.id,
undefined,
@ -2368,7 +2368,7 @@ describe('Article API', () => {
user,
title: 'test item',
slug: '',
originalUrl: `https://blog.omnivore.app/p/bulk-action-${i}`,
originalUrl: `https://blog.omnivore.work/p/bulk-action-${i}`,
},
user.id,
undefined,
@ -2424,7 +2424,7 @@ describe('Article API', () => {
title: 'test setFavoriteArticle',
slug: '',
readableContent: '<p>test</p>',
originalUrl: `https://blog.omnivore.app/p/setFavoriteArticle`,
originalUrl: `https://blog.omnivore.work/p/setFavoriteArticle`,
}
const item = await createOrUpdateLibraryItem(
itemToSave,
@ -2478,7 +2478,7 @@ describe('Article API', () => {
title: 'test item',
readableContent: '<p>test</p>',
slug: '',
originalUrl: `https://blog.omnivore.app/p/empty-trash-${i}`,
originalUrl: `https://blog.omnivore.work/p/empty-trash-${i}`,
deletedAt: new Date(),
state: LibraryItemState.Deleted,
}

View file

@ -80,7 +80,7 @@ describe('ArticleSavingRequest API', () => {
describe('createArticleSavingRequest', () => {
it('returns the article saving request', async () => {
const res = await graphqlRequest(
createArticleSavingRequestMutation('https://blog.omnivore.app'),
createArticleSavingRequestMutation('https://blog.omnivore.work'),
authToken
).expect(200)
@ -90,9 +90,9 @@ describe('ArticleSavingRequest API', () => {
})
it('creates a library item in db', async () => {
const url = 'https://blog.omnivore.app/1'
const url = 'https://blog.omnivore.work/1'
await graphqlRequest(
createArticleSavingRequestMutation('https://blog.omnivore.app/1'),
createArticleSavingRequestMutation('https://blog.omnivore.work/1'),
authToken
).expect(200)
@ -117,7 +117,7 @@ describe('ArticleSavingRequest API', () => {
let id: string
before(async () => {
url = 'https://blog.omnivore.app/2'
url = 'https://blog.omnivore.work/2'
// create article saving request
const res = await graphqlRequest(
createArticleSavingRequestMutation(url),

View file

@ -107,7 +107,7 @@ describe('features resolvers', () => {
name: `opt-in-user-${i}`,
source: 'GOOGLE',
sourceUserId: `fake-user-id-user${i}`,
email: `opt-in-user-${i}@omnivore.app`,
email: `opt-in-user-${i}@omnivore.work`,
username: `user${i}`,
bio: `i am user${i}`,
}

View file

@ -54,7 +54,7 @@ describe('PopularReads API', () => {
user.id
)
expect(item?.originalUrl).to.eq(
'https://blog.omnivore.app/p/saving-links-from-your-iphone-or'
'https://blog.omnivore.work/p/saving-links-from-your-iphone-or'
)
expect(item?.wordCount).to.eq(371)
})

View file

@ -121,7 +121,7 @@ describe('Recent Emails Resolver', () => {
before(async () => {
// create fake email
recentEmail = await saveReceivedEmail(
'Omnivore Newsletter <newsletter@omnivore.app>',
'Omnivore Newsletter <newsletter@omnivore.work>',
newsletterEmail.address,
'fake subject 3',
'fake text 3',

View file

@ -300,12 +300,12 @@ describe('Subscriptions API', () => {
it('unsubscribes', async () => {
const name = 'Sub_5'
const to = 'unsubscribe@omnivore.app'
const to = 'unsubscribe@omnivore.work'
const subject = 'test'
// create test newsletter subscriptions
const newsletterEmail = await getRepository(NewsletterEmail).save({
user,
address: 'test_2@inbox.omnivore.app',
address: 'test_2@inbox.omnivore.work',
confirmationCode: 'test',
})
const subscription = await createSubscription(
@ -369,7 +369,7 @@ describe('Subscriptions API', () => {
`
context('when subscribing to a rss feed', () => {
const url = 'https://www.omnivore.app/rss'
const url = 'https://www.omnivore.work/rss'
const subscriptionType = SubscriptionType.Rss
before(() => {

View file

@ -31,7 +31,7 @@ describe('Update API', () => {
let query: string
const title = 'New Title'
const description = 'New Description'
const previewImage = 'https://omnivore.app/image.png'
const previewImage = 'https://omnivore.work/image.png'
beforeEach(() => {
query = `

View file

@ -281,7 +281,7 @@ describe('User API', () => {
const user = await userRepository.findOneBy({ id: userId })
expect(user?.status).to.eql(StatusType.Deleted)
expect(user?.email).to.eql(`deleted_user_${userId}@omnivore.app`)
expect(user?.email).to.eql(`deleted_user_${userId}@omnivore.work`)
})
})

View file

@ -36,7 +36,7 @@ describe('/article/save API', () => {
})
describe('POST /article/save', () => {
const url = 'https://blog.omnivore.app'
const url = 'https://blog.omnivore.work'
before(() => {
sinon.replace(

View file

@ -45,7 +45,7 @@ describe('auth router', () => {
before(() => {
password = validPassword
username = 'Some_username'
email = `${username}@omnivore.app ` // space at the end is intentional
email = `${username}@omnivore.work ` // space at the end is intentional
name = 'Some name'
})
@ -523,7 +523,7 @@ describe('auth router', () => {
const name = 'test_user'
const username = 'test_user'
const sourceUserId = 'test_source_user_id'
const email = 'test_user@omnivore.app'
const email = 'test_user@omnivore.work'
const bio = 'test_bio'
const provider: AuthProvider = 'EMAIL'
@ -586,7 +586,7 @@ describe('auth router', () => {
describe('isValidSignupRequest', () => {
it('returns true for normal looking requests', () => {
const result = isValidSignupRequest({
email: 'email@omnivore.app',
email: 'email@omnivore.work',
password: 'superDuperPassword',
name: "The User's Name",
username: 'foouser',
@ -602,21 +602,21 @@ describe('isValidSignupRequest', () => {
expect(result).to.be.false
result = isValidSignupRequest({
email: 'email@omnivore.app',
email: 'email@omnivore.work',
name: "The User's Name",
username: 'foouser',
})
expect(result).to.be.false
result = isValidSignupRequest({
email: 'email@omnivore.app',
email: 'email@omnivore.work',
password: 'superDuperPassword',
username: 'foouser',
})
expect(result).to.be.false
result = isValidSignupRequest({
email: 'email@omnivore.app',
email: 'email@omnivore.work',
password: 'superDuperPassword',
name: "The User's Name",
})

View file

@ -11,7 +11,7 @@ import { createTestUser } from '../db'
import { request } from '../util'
xdescribe('Email attachments Router', () => {
const newsletterEmailAddress = 'fakeEmail@omnivore.app'
const newsletterEmailAddress = 'fakeEmail@omnivore.work'
let user: User
let authToken: string

View file

@ -20,7 +20,7 @@ describe('User Service Router', () => {
const users = await createUsers([
{
name: 'user_1',
email: 'user_1@omnivore.app',
email: 'user_1@omnivore.work',
status: StatusType.Deleted,
updatedAt: new Date(Date.now() - 1000 * 60 * 60 * 24 * 2), // 2 days ago
source: 'GOOGLE',
@ -28,7 +28,7 @@ describe('User Service Router', () => {
},
{
name: 'user_2',
email: 'user_2@omnivore.app',
email: 'user_2@omnivore.work',
status: StatusType.Deleted,
updatedAt: new Date(Date.now() - 1000 * 60 * 60 * 24 * 2), // 2 days ago
source: 'GOOGLE',

View file

@ -8,7 +8,7 @@ describe('validateUrl', () => {
validateUrl('https://google.com')
}).not.to.throw()
expect(() => {
validateUrl('https://omnivore.app/path')
validateUrl('https://omnivore.work/path')
}).not.to.throw()
})
it('doesnt allow access to private addresses', () => {

View file

@ -18,7 +18,7 @@ describe('saveEmail', () => {
before(async () => {
// create test user
user = await createTestUser('fakeUser')
scope = nock('https://blog.omnivore.app')
scope = nock('https://blog.omnivore.work')
.get('/fake-url')
.reply(200)
.persist()
@ -40,7 +40,7 @@ describe('saveEmail', () => {
})
it('doesnt fail if saved twice', async () => {
const url = 'https://blog.omnivore.app/fake-url'
const url = 'https://blog.omnivore.work/fake-url'
const title = 'fake title'
const author = 'fake author'

View file

@ -43,9 +43,9 @@ describe('saveNewsletterEmail', () => {
})
it('adds the newsletter to the library', async () => {
nock('https://blog.omnivore.app').get('/fake-url').reply(200)
nock('https://blog.omnivore.app').head('/fake-url').reply(200)
const url = 'https://blog.omnivore.app/fake-url'
nock('https://blog.omnivore.work').get('/fake-url').reply(200)
nock('https://blog.omnivore.work').head('/fake-url').reply(200)
const url = 'https://blog.omnivore.work/fake-url'
await saveNewsletter(
{
@ -56,7 +56,7 @@ describe('saveNewsletterEmail', () => {
title,
author,
receivedEmailId: receivedEmail.id,
unsubHttpUrl: 'https://blog.omnivore.app/unsubscribe',
unsubHttpUrl: 'https://blog.omnivore.work/unsubscribe',
},
newsletterEmail
)
@ -75,9 +75,9 @@ describe('saveNewsletterEmail', () => {
})
it('adds a Newsletter label to that page', async () => {
nock('https://blog.omnivore.app').get('/new-fake-url').reply(200)
nock('https://blog.omnivore.app').head('/new-fake-url').reply(200)
const url = 'https://blog.omnivore.app/new-fake-url'
nock('https://blog.omnivore.work').get('/new-fake-url').reply(200)
nock('https://blog.omnivore.work').head('/new-fake-url').reply(200)
const url = 'https://blog.omnivore.work/new-fake-url'
const newLabel = {
name: 'Newsletter',
color: '#07D2D1',
@ -101,8 +101,8 @@ describe('saveNewsletterEmail', () => {
})
it('does not create a subscription if no unsubscribe header', async () => {
const url = 'https://omnivore.app/no_url?q=no-unsubscribe'
nock('https://omnivore.app').get('/no_url?q=no-unsubscribe').reply(404)
const url = 'https://omnivore.work/no_url?q=no-unsubscribe'
nock('https://omnivore.work').get('/no_url?q=no-unsubscribe').reply(404)
await saveNewsletter(
{

File diff suppressed because one or more lines are too long

View file

@ -44,7 +44,7 @@ describe('parsePreparedContent', () => {
.reply(401)
const html = load('./test/utils/data/stratechery-blog-post.html')
const result = await parsePreparedContent('https://blog.omnivore.app/', {
const result = await parsePreparedContent('https://blog.omnivore.work/', {
document: html,
pageInfo: {},
})
@ -67,7 +67,7 @@ describe('parsePreparedContent', () => {
</body>
</html>
`
const result = await parsePreparedContent('https://blog.omnivore.app/', {
const result = await parsePreparedContent('https://blog.omnivore.work/', {
document: html,
pageInfo: {},
})
@ -95,7 +95,7 @@ describe('parsePreparedContent', () => {
// </head>
// <body>body</body>
// </html>`
// const result = await parsePreparedContent('https://blog.omnivore.app/', {
// const result = await parsePreparedContent('https://blog.omnivore.work/', {
// document: html,
// pageInfo: {},
// })
@ -138,14 +138,14 @@ describe('getTitleFromEmailSubject', () => {
describe('parseEmailAddress', () => {
it('returns the name and address when in name <address> format', () => {
const name = 'test name'
const address = 'tester@omnivore.app'
const address = 'tester@omnivore.work'
const parsed = parseEmailAddress(`${name} <${address}>`)
expect(parsed.name).to.eql(name)
expect(parsed.address).to.eql(address)
})
it('returns the address when in address format', () => {
const address = 'tester@omnivore.app'
const address = 'tester@omnivore.work'
const parsed = parseEmailAddress(address)
expect(parsed.name).to.eql('')
expect(parsed.address).to.eql(address)

View file

@ -48,13 +48,13 @@ describe('videoIdFromYouTubeUrl', () => {
it('Returns undefined for non-youtube url', () => {
const result = videoIdFromYouTubeUrl(
'https://omnivore.app/iZxR7rPdvuQ?si=ad73DTmmXL_lbn31'
'https://omnivore.work/iZxR7rPdvuQ?si=ad73DTmmXL_lbn31'
)
expect(result).to.eq(undefined)
})
it('Returns undefined for non-youtube short url', () => {
const result = videoIdFromYouTubeUrl('https://omnivore.app/?v=iZxR7rPdvuQ')
const result = videoIdFromYouTubeUrl('https://omnivore.work/?v=iZxR7rPdvuQ')
expect(result).to.eq(undefined)
})
@ -74,7 +74,7 @@ describe('isYouTubeVideoURL', () => {
expect(result).to.eq(false)
})
it('Returns false for a non-youtube URL', () => {
const result = isYouTubeVideoURL('https://omnivore.app/about')
const result = isYouTubeVideoURL('https://omnivore.work/about')
expect(result).to.eq(false)
})
it('Returns true for a video URL', () => {

View file

@ -34,7 +34,7 @@ export interface PreHandleResult {
dom?: Document
}
export const FAKE_URL_PREFIX = 'https://omnivore.app/no_url?q='
export const FAKE_URL_PREFIX = 'https://omnivore.work/no_url?q='
export const generateUniqueUrl = () => FAKE_URL_PREFIX + uuid()
export abstract class ContentHandler {

File diff suppressed because one or more lines are too long

View file

@ -565,7 +565,7 @@ describe('Newsletter email test', () => {
describe('preParse', () => {
context('when email is from Substack', () => {
it('removes the Substack footer and header', async () => {
const url = 'https://blog.omnivore.app/p/omnivore-2021-01-31'
const url = 'https://blog.omnivore.work/p/omnivore-2021-01-31'
const html = load('./test/data/substack-newsletter-new.html')
const dom = parseHTML(html).document
const preparedDom = await new SubstackHandler().preParse(url, dom)

View file

@ -1,4 +1,4 @@
const email = 'tester@omnivore.app'
const email = 'tester@omnivore.work'
const username = 'testuser'
const password = 'testpassword'
const fullName = 'Test User'

View file

@ -1,7 +1,7 @@
describe('add link button', () => {
before(() => {
const email = 'tester@omnivore.app'
const email = 'tester@omnivore.work'
const password = 'testpassword'
cy.login(email, password)

Some files were not shown because too many files have changed in this diff Show more