You've already forked AstralRinth
forked from didirus/AstralRinth
Support for latest Modrinth Upstream
This commit is contained in:
1569
Cargo.lock
generated
1569
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Modrinth App</title>
|
<title>AstralRinth App</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="/src/assets/stylesheets/global.scss" />
|
<link rel="stylesheet" href="/src/assets/stylesheets/global.scss" />
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@modrinth/app-frontend",
|
"name": "@modrinth/app-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.9.201",
|
"version": "0.9.2",
|
||||||
"development_build": true,
|
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import { useLoading, useTheming } from '@/store/state'
|
|||||||
// import ModrinthAppLogo from '@/assets/modrinth_app.svg?component'
|
// import ModrinthAppLogo from '@/assets/modrinth_app.svg?component'
|
||||||
import AccountsCard from '@/components/ui/AccountsCard.vue'
|
import AccountsCard from '@/components/ui/AccountsCard.vue'
|
||||||
import InstanceCreationModal from '@/components/ui/InstanceCreationModal.vue'
|
import InstanceCreationModal from '@/components/ui/InstanceCreationModal.vue'
|
||||||
import { get } from '@/helpers/settings'
|
import { get, set } from '@/helpers/settings'
|
||||||
import Breadcrumbs from '@/components/ui/Breadcrumbs.vue'
|
import Breadcrumbs from '@/components/ui/Breadcrumbs.vue'
|
||||||
import RunningAppBar from '@/components/ui/RunningAppBar.vue'
|
import RunningAppBar from '@/components/ui/RunningAppBar.vue'
|
||||||
import SplashScreen from '@/components/ui/SplashScreen.vue'
|
import SplashScreen from '@/components/ui/SplashScreen.vue'
|
||||||
@@ -100,6 +100,14 @@ onUnmounted(() => {
|
|||||||
|
|
||||||
async function setupApp() {
|
async function setupApp() {
|
||||||
stateInitialized.value = true
|
stateInitialized.value = true
|
||||||
|
|
||||||
|
const settings = await get()
|
||||||
|
|
||||||
|
// Patched
|
||||||
|
settings.personalized_ads = false
|
||||||
|
settings.telemetry = false
|
||||||
|
await set(settings)
|
||||||
|
|
||||||
const {
|
const {
|
||||||
native_decorations,
|
native_decorations,
|
||||||
theme,
|
theme,
|
||||||
@@ -112,7 +120,8 @@ async function setupApp() {
|
|||||||
toggle_sidebar,
|
toggle_sidebar,
|
||||||
developer_mode,
|
developer_mode,
|
||||||
feature_flags,
|
feature_flags,
|
||||||
} = await get()
|
} = settings
|
||||||
|
|
||||||
|
|
||||||
if (default_page === 'Library') {
|
if (default_page === 'Library') {
|
||||||
await router.push('/library')
|
await router.push('/library')
|
||||||
@@ -141,9 +150,13 @@ async function setupApp() {
|
|||||||
|
|
||||||
initAnalytics()
|
initAnalytics()
|
||||||
if (!telemetry) {
|
if (!telemetry) {
|
||||||
console.info("[AstralRinth] Telemetry disabled by default (Hard patched in code).")
|
console.info("[AR] Telemetry disabled by default (Hard patched).")
|
||||||
optOutAnalytics()
|
optOutAnalytics()
|
||||||
}
|
}
|
||||||
|
if (!personalized_ads) {
|
||||||
|
console.info("[AR] Personalized ads disabled by default (Hard patched).")
|
||||||
|
}
|
||||||
|
|
||||||
if (dev) debugAnalytics()
|
if (dev) debugAnalytics()
|
||||||
trackEvent('Launched', { version, dev, onboarded })
|
trackEvent('Launched', { version, dev, onboarded })
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ function devModeCount() {
|
|||||||
<ModrinthIcon class="w-6 h-6" />
|
<ModrinthIcon class="w-6 h-6" />
|
||||||
</button>
|
</button>
|
||||||
<div>
|
<div>
|
||||||
<p class="m-0">Modrinth App {{ version }}</p>
|
<p class="m-0">AstralRinth App {{ version }}</p>
|
||||||
<p class="m-0">
|
<p class="m-0">
|
||||||
<span v-if="osPlatform === 'macos'">MacOS</span>
|
<span v-if="osPlatform === 'macos'">MacOS</span>
|
||||||
<span v-else class="capitalize">{{ osPlatform }}</span>
|
<span v-else class="capitalize">{{ osPlatform }}</span>
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ const props = defineProps({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
showAdOnClose: {
|
// showAdOnClose: {
|
||||||
type: Boolean,
|
// type: Boolean,
|
||||||
default: true,
|
// default: true,
|
||||||
},
|
// },
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['proceed'])
|
const emit = defineEmits(['proceed'])
|
||||||
@@ -51,7 +51,7 @@ defineExpose({
|
|||||||
modal.value.show()
|
modal.value.show()
|
||||||
},
|
},
|
||||||
hide: () => {
|
hide: () => {
|
||||||
onModalHide()
|
// onModalHide()
|
||||||
modal.value.hide()
|
modal.value.hide()
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ const props = defineProps({
|
|||||||
return () => { }
|
return () => { }
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
showAdOnClose: {
|
// showAdOnClose: {
|
||||||
type: Boolean,
|
// type: Boolean,
|
||||||
default: true,
|
// default: true,
|
||||||
},
|
// },
|
||||||
})
|
})
|
||||||
const modal = ref(null)
|
const modal = ref(null)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ watch(
|
|||||||
<div>
|
<div>
|
||||||
<h2 class="m-0 text-lg font-extrabold text-contrast">Personalized ads</h2>
|
<h2 class="m-0 text-lg font-extrabold text-contrast">Personalized ads</h2>
|
||||||
<p class="m-0 text-sm">
|
<p class="m-0 text-sm">
|
||||||
Modrinth's ad provider, Aditude, shows ads based on your preferences. By disabling this
|
(Hard disabled by AR) • Modrinth's ad provider, Aditude, shows ads based on your preferences. By disabling this
|
||||||
option, you opt out and ads will no longer be shown based on your interests.
|
option, you opt out and ads will no longer be shown based on your interests.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -34,6 +34,7 @@ watch(
|
|||||||
id="personalized-ads"
|
id="personalized-ads"
|
||||||
:model-value="settings.personalized_ads"
|
:model-value="settings.personalized_ads"
|
||||||
:checked="settings.personalized_ads"
|
:checked="settings.personalized_ads"
|
||||||
|
:disabled="!settings.personalized_ads"
|
||||||
@update:model-value="
|
@update:model-value="
|
||||||
(e) => {
|
(e) => {
|
||||||
settings.personalized_ads = e
|
settings.personalized_ads = e
|
||||||
@@ -46,7 +47,7 @@ watch(
|
|||||||
<div>
|
<div>
|
||||||
<h2 class="m-0 text-lg font-extrabold text-contrast">Telemetry</h2>
|
<h2 class="m-0 text-lg font-extrabold text-contrast">Telemetry</h2>
|
||||||
<p class="m-0 text-sm">
|
<p class="m-0 text-sm">
|
||||||
Modrinth collects anonymized analytics and usage data to improve our user experience and
|
(Hard disabled by AR) • Modrinth collects anonymized analytics and usage data to improve our user experience and
|
||||||
customize your experience. By disabling this option, you opt out and your data will no
|
customize your experience. By disabling this option, you opt out and your data will no
|
||||||
longer be collected.
|
longer be collected.
|
||||||
</p>
|
</p>
|
||||||
@@ -55,6 +56,7 @@ watch(
|
|||||||
id="opt-out-analytics"
|
id="opt-out-analytics"
|
||||||
:model-value="settings.telemetry"
|
:model-value="settings.telemetry"
|
||||||
:checked="settings.telemetry"
|
:checked="settings.telemetry"
|
||||||
|
:disabled="!settings.telemetry"
|
||||||
@update:model-value="
|
@update:model-value="
|
||||||
(e) => {
|
(e) => {
|
||||||
settings.telemetry = e
|
settings.telemetry = e
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export const DEFAULT_FEATURE_FLAGS = validateValues({
|
|||||||
// Developer flags
|
// Developer flags
|
||||||
developerMode: false,
|
developerMode: false,
|
||||||
showVersionFilesInTable: false,
|
showVersionFilesInTable: false,
|
||||||
showAdsWithPlus: false,
|
// showAdsWithPlus: false,
|
||||||
|
|
||||||
// Feature toggles
|
// Feature toggles
|
||||||
projectTypesPrimaryNav: false,
|
projectTypesPrimaryNav: false,
|
||||||
|
|||||||
@@ -655,12 +655,12 @@
|
|||||||
:tags="tags"
|
:tags="tags"
|
||||||
class="card flex-card experimental-styles-within"
|
class="card flex-card experimental-styles-within"
|
||||||
/>
|
/>
|
||||||
<AdPlaceholder
|
<!-- <AdPlaceholder
|
||||||
v-if="
|
v-if="
|
||||||
(!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus) &&
|
(!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus) &&
|
||||||
tags.approvedStatuses.includes(project.status)
|
tags.approvedStatuses.includes(project.status)
|
||||||
"
|
"
|
||||||
/>
|
/> -->
|
||||||
<ProjectSidebarLinks
|
<ProjectSidebarLinks
|
||||||
:project="project"
|
:project="project"
|
||||||
:link-target="$external()"
|
:link-target="$external()"
|
||||||
@@ -843,7 +843,7 @@ import ModerationChecklist from "~/components/ui/ModerationChecklist.vue";
|
|||||||
import Accordion from "~/components/ui/Accordion.vue";
|
import Accordion from "~/components/ui/Accordion.vue";
|
||||||
import ModrinthIcon from "~/assets/images/utils/modrinth.svg?component";
|
import ModrinthIcon from "~/assets/images/utils/modrinth.svg?component";
|
||||||
import AutomaticAccordion from "~/components/ui/AutomaticAccordion.vue";
|
import AutomaticAccordion from "~/components/ui/AutomaticAccordion.vue";
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
|
|
||||||
const data = useNuxtApp();
|
const data = useNuxtApp();
|
||||||
const route = useNativeRoute();
|
const route = useNativeRoute();
|
||||||
|
|||||||
@@ -661,7 +661,7 @@ import RightArrowIcon from "~/assets/images/utils/right-arrow.svg?component";
|
|||||||
import Modal from "~/components/ui/Modal.vue";
|
import Modal from "~/components/ui/Modal.vue";
|
||||||
import ChevronRightIcon from "~/assets/images/utils/chevron-right.svg?component";
|
import ChevronRightIcon from "~/assets/images/utils/chevron-right.svg?component";
|
||||||
|
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
export default defineNuxtComponent({
|
export default defineNuxtComponent({
|
||||||
components: {
|
components: {
|
||||||
MarkdownEditor,
|
MarkdownEditor,
|
||||||
|
|||||||
@@ -247,9 +247,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<AdPlaceholder
|
<!-- <AdPlaceholder
|
||||||
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
||||||
/>
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="normal-page__content">
|
<div class="normal-page__content">
|
||||||
<nav class="navigation-card">
|
<nav class="navigation-card">
|
||||||
@@ -395,7 +395,7 @@ import { addNotification } from "~/composables/notifs.js";
|
|||||||
import ModalConfirm from "~/components/ui/ModalConfirm.vue";
|
import ModalConfirm from "~/components/ui/ModalConfirm.vue";
|
||||||
import NavRow from "~/components/ui/NavRow.vue";
|
import NavRow from "~/components/ui/NavRow.vue";
|
||||||
import ProjectCard from "~/components/ui/ProjectCard.vue";
|
import ProjectCard from "~/components/ui/ProjectCard.vue";
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
|
|
||||||
const vintl = useVIntl();
|
const vintl = useVIntl();
|
||||||
const { formatMessage } = vintl;
|
const { formatMessage } = vintl;
|
||||||
|
|||||||
@@ -140,9 +140,9 @@
|
|||||||
</ContentPageHeader>
|
</ContentPageHeader>
|
||||||
</div>
|
</div>
|
||||||
<div class="normal-page__sidebar">
|
<div class="normal-page__sidebar">
|
||||||
<AdPlaceholder
|
<!-- <AdPlaceholder
|
||||||
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
||||||
/>
|
/> -->
|
||||||
|
|
||||||
<div class="card flex-card">
|
<div class="card flex-card">
|
||||||
<h2>Members</h2>
|
<h2>Members</h2>
|
||||||
@@ -265,7 +265,7 @@ import NavStackItem from "~/components/ui/NavStackItem.vue";
|
|||||||
import ModalCreation from "~/components/ui/ModalCreation.vue";
|
import ModalCreation from "~/components/ui/ModalCreation.vue";
|
||||||
import UpToDate from "~/assets/images/illustrations/up_to_date.svg?component";
|
import UpToDate from "~/assets/images/illustrations/up_to_date.svg?component";
|
||||||
import ProjectCard from "~/components/ui/ProjectCard.vue";
|
import ProjectCard from "~/components/ui/ProjectCard.vue";
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
|
|
||||||
import OrganizationIcon from "~/assets/images/utils/organization.svg?component";
|
import OrganizationIcon from "~/assets/images/utils/organization.svg?component";
|
||||||
import DownloadIcon from "~/assets/images/utils/download.svg?component";
|
import DownloadIcon from "~/assets/images/utils/download.svg?component";
|
||||||
|
|||||||
@@ -50,12 +50,12 @@
|
|||||||
}"
|
}"
|
||||||
aria-label="Filters"
|
aria-label="Filters"
|
||||||
>
|
>
|
||||||
<AdPlaceholder
|
<!-- <AdPlaceholder
|
||||||
v-if="
|
v-if="
|
||||||
(!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus) &&
|
(!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus) &&
|
||||||
!server
|
!server
|
||||||
"
|
"
|
||||||
/>
|
/> -->
|
||||||
<div v-if="filtersMenuOpen" class="fixed inset-0 z-40 bg-bg"></div>
|
<div v-if="filtersMenuOpen" class="fixed inset-0 z-40 bg-bg"></div>
|
||||||
<div
|
<div
|
||||||
class="flex flex-col gap-3"
|
class="flex flex-col gap-3"
|
||||||
@@ -322,7 +322,7 @@ import FilterIcon from "~/assets/images/utils/filter.svg?component";
|
|||||||
import GridIcon from "~/assets/images/utils/grid.svg?component";
|
import GridIcon from "~/assets/images/utils/grid.svg?component";
|
||||||
import ListIcon from "~/assets/images/utils/list.svg?component";
|
import ListIcon from "~/assets/images/utils/list.svg?component";
|
||||||
import ImageIcon from "~/assets/images/utils/image.svg?component";
|
import ImageIcon from "~/assets/images/utils/image.svg?component";
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
import NavTabs from "~/components/ui/NavTabs.vue";
|
import NavTabs from "~/components/ui/NavTabs.vue";
|
||||||
|
|
||||||
const { formatMessage } = useVIntl();
|
const { formatMessage } = useVIntl();
|
||||||
|
|||||||
@@ -246,9 +246,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<AdPlaceholder
|
<!-- <AdPlaceholder
|
||||||
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
v-if="!auth.user || !isPermission(auth.user.badges, 1 << 0) || flags.showAdsWithPlus"
|
||||||
/>
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -285,7 +285,7 @@ import WorldIcon from "~/assets/images/utils/world.svg?component";
|
|||||||
import ModalCreation from "~/components/ui/ModalCreation.vue";
|
import ModalCreation from "~/components/ui/ModalCreation.vue";
|
||||||
import Avatar from "~/components/ui/Avatar.vue";
|
import Avatar from "~/components/ui/Avatar.vue";
|
||||||
import CollectionCreateModal from "~/components/ui/CollectionCreateModal.vue";
|
import CollectionCreateModal from "~/components/ui/CollectionCreateModal.vue";
|
||||||
import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
// import AdPlaceholder from "~/components/ui/AdPlaceholder.vue";
|
||||||
|
|
||||||
const data = useNuxtApp();
|
const data = useNuxtApp();
|
||||||
const route = useNativeRoute();
|
const route = useNativeRoute();
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ use serde::{Deserialize, Serialize};
|
|||||||
use tokio::io;
|
use tokio::io;
|
||||||
|
|
||||||
const PACKAGE_JSON_CONTENT: &str =
|
const PACKAGE_JSON_CONTENT: &str =
|
||||||
include_str!("../../../../apps/app-frontend/package.json");
|
// include_str!("../../../../apps/app-frontend/package.json");
|
||||||
|
include_str!("../../../../apps/app/tauri.conf.json");
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
pub struct Launcher {
|
pub struct Launcher {
|
||||||
pub version: String,
|
pub version: String
|
||||||
pub development_build: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn read_package_json() -> io::Result<Launcher> {
|
pub fn read_package_json() -> io::Result<Launcher> {
|
||||||
|
|||||||
7191
pnpm-lock.yaml
generated
7191
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user