Skip to content

Commit

Permalink
Add jurisdictionl-cookies-like bullshit
Browse files Browse the repository at this point in the history
  • Loading branch information
ed-asriyan committed Oct 20, 2024
1 parent fb2acfd commit e84639a
Show file tree
Hide file tree
Showing 9 changed files with 152 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/components/controls/index.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
{/if}
</Interpolator>
</div>
<div class="footer uk-text-small uk-text-muted uk-text-center uk-padding">
<div class="footer uk-text-small uk-text-muted uk-text-center uk-padding uk-padding-remove-bottom">
<LanguageSelector />
<div class="uk-margin-top">
<span>{ $_('poweredBy') }</span>
Expand All @@ -134,6 +134,11 @@
<div>
<a class="uk-text-muted" href="https://asriyan.me" target="_blank">Ed Asriyan</a>
</div>
<div class="uk-margin-top uk-text-small">
<a href="/terms-and-conditions.txt" class="uk-text-muted" target="_blank">{ $_('termsAndConditions') }</a>
|
<a href="/privacy-policy.txt" class="uk-text-muted" target="_blank">{ $_('privacyPolicy') }</a>
</div>
</div>

<style lang="scss">
Expand Down
44 changes: 44 additions & 0 deletions src/components/jurisdictional-bullshit-banner.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<script lang="ts">
import { fade } from 'svelte/transition';
import { _ } from 'svelte-i18n';
import { sleep } from '../utils';
import Interpolator from './interpolator.svelte';
import { createLocalStore } from '../stores/local-store';
import { onMount } from 'svelte';
const LIMIT = 10;
const counter = createLocalStore('jurisdictionl-bullshit-banner-shown-times', '0');
onMount(() => {
if (+$counter < LIMIT) {
counter.update((v) => (+v + 1).toString());
}
});
</script>

{#if +$counter < LIMIT}
{#await sleep(5000)}
<div transition:fade class="terms-and-conditions uk-text-center">
<Interpolator text={$_('termsAndConditionsReminder')} let:data={data}>
{#if data.name === 'termsAndConditions'}
<a href="/terms-and-conditions.txt" class="uk-text-muted" target="_blank">{ data.text }</a>
{/if}
{#if data.name === 'privacyPolicy'}
<a href="/privacy-policy.txt" class="uk-text-muted" target="_blank">{ data.text }</a>
{/if}
</Interpolator>
</div>
{:then a}
{/await}
{/if}

<style lang="scss">
.terms-and-conditions {
position: fixed;
left: 0;
top: 6rem;
z-index: 2;
width: 100%;
}
</style>
3 changes: 3 additions & 0 deletions src/components/room.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import Header from './header.svelte';
import Controls from './controls/index.svelte';
import Fullscreen from './fullscreen.svelte';
import JuristicionalBullshitBanner from './jurisdictional-bullshit-banner.svelte';
import ScrollIcon from './scroll-icon.svelte';
import { cursorActive } from '../stores/cursor';
Expand All @@ -23,6 +24,8 @@
<svelte:window bind:scrollY={scrollY} bind:innerHeight={clientHeight}></svelte:window>

<Header display={scrollY !== 0}/>
<JuristicionalBullshitBanner />

<div class="player" style:filter={`blur(${Math.round((scrollY / clientHeight) * 10)}px) brightness(${1 - (scrollY / clientHeight) * 0.5})`}>
<VideoPlayer room={room}/>
</div>
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/_.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ const def = {
peers: 'Peers: {peers}',
fullscreen: 'Fullscreen',
scrollUp: 'scroll up',
termsAndConditions: 'Terms and Conditions',
privacyPolicy: 'Privacy Policy',
termsAndConditionsReminder: 'By using this website, you agree with {termsAndConditions}Terms and Conditions{/termsAndConditions}, and {privacyPolicy}Privacy Policy{/privacyPolicy}',
feedback: {
link: 'https://forms.gle/YY8ypRnJ5b65QWhc6',
linkText: 'Experience issues? Have any ideas? Please provide your feedback {link}here{/link}',
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ const fr: TranslatedText = {
peers: 'Peers: {peers}',
fullscreen: 'plein écran',
scrollUp: 'faire défiler vers le haut',
termsAndConditions: `Conditions générales d'utilisation`,
privacyPolicy: `Politique de confidentialité`,
termsAndConditionsReminder: `En utilisant ce site web, vous acceptez les {termsAndConditions}Terms and Conditions{/termsAndConditions}, et {privacyPolicy}Privacy Policy{/privacyPolicy}`,
feedback: {
link: 'https://forms.gle/YY8ypRnJ5b65QWhc6',
linkText: 'Vous rencontrez des problèmes? Vous avez des idées? Veuillez nous faire part de vos commentaires {link}ici (anglais){/link}',
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ const ru: TranslatedText = {
peers: 'Пиры: {peers}',
fullscreen: 'Плоноэкранный режим',
scrollUp: 'прокрутите вверх',
termsAndConditions: 'Условия и положения',
privacyPolicy: 'Политика конфиденциальности',
termsAndConditionsReminder: 'Используя этот сайт, вы соглашаетесь с {termsAndConditions}Правилами и условиями{/termsAndConditions}, и {privacyPolicy}Политикой конфиденциальности{/privacyPolicy}',
feedback: {
link: 'https://forms.gle/tXzRyTQimJkHXNuS7',
linkText: 'Возникли проблемы? Есть идеи? Оставьте обратную свзять {link}тут{/link}',
Expand Down
21 changes: 21 additions & 0 deletions src/stores/local-store.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { writable, type Writable } from 'svelte/store';

export const createLocalStore = function (key: string, initialValue: string): Writable<string> {
const storedValue = localStorage.getItem(key);
const value = storedValue === null ? initialValue : storedValue;

const { subscribe, set, update } = writable<string>(value);

return {
subscribe,
set: (newValue: string) => {
localStorage.setItem(key, newValue);
set(newValue);
},
update: (updater: (value: string) => string) => {
const newValue = updater(value);
localStorage.setItem(key, newValue);
update(updater);
}
};
};
38 changes: 38 additions & 0 deletions static/privacy-policy.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Privacy Policy for watchtogether.online
Last updated: 2024-10-19

At watchtogether.online, we are committed to protecting your privacy. This Privacy Policy outlines how we collect, use, and protect your personal information when you use the Website.

1. Information We Collect
We do not collect any personal information that can identify you directly. However, we may collect the following non-personal information:
* Cookies and Local Storage: We use cookies and local storage to enhance the user experience and provide Website functionality (e.g., saving user preferences). Cookies may also be used to collect anonymous statistical data through third-party services such as Google Analytics.
* Analytics Data: Google Analytics is enabled on our Website to track anonymous usage statistics, including but not limited to IP addresses, browser types, device information, and interaction data. This information helps us understand how users interact with the Website and allows us to improve the service.

2. How We Use Information
The non-personal data collected is used for the following purposes:
* Improving User Experience: To enhance the functionality of the Website and ensure it operates efficiently for all users.
* Analytics and Performance Monitoring: To monitor Website traffic, track trends, and analyze how users interact with the platform.
* Security: To ensure that the Website is secure and protected from malicious activity.

3. Data Sharing
Since we do not collect any personal information, we do not share any personal information with third parties. However, we may share aggregated and anonymous data (such as website usage statistics) with third-party services, including Google Analytics.

4. Cookies and Tracking Technologies
We use cookies to:
* Store user preferences for session management.
* Facilitate synchronization of playback between users.
* Enable Google Analytics to track anonymous usage data.

You can control or delete cookies in your browser settings, but please note that disabling cookies may affect the functionality of the Website.

5. Security
We take reasonable measures to protect the information collected and ensure the security of your interaction with the Website. However, since the Website does not collect or store personal data, we encourage users to practice safe browsing habits.

6. Third-Party Links
The Website may include links to third-party websites, such as video providers. We are not responsible for the privacy practices or the content of these third-party sites. We encourage you to review their privacy policies when accessing them.

7. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. Any changes will be posted on this page with the updated date. We encourage you to review the policy periodically.

8. Contact Us
If you have any questions or concerns about this Privacy Policy, please contact us at: [email protected].
31 changes: 31 additions & 0 deletions static/terms-and-conditions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Terms and Conditions for watchtogether.online
Last updated: 2024-10-19

1. Acceptance of Terms
By accessing or using watchtogether.online (the Website), you agree to comply with and be bound by these Terms and Conditions. If you do not agree with these terms, you should not use the Website.

2. Nature of the Website
The Website provides a platform for users to watch videos together with synchronized playback. Users can provide video URLs, select files from their devices, or stream/share their screens. The Website does not host, store, or provide any video content and is merely a video player for personal use. All content that you can see is not hosted on or provided by the Website since it is merely a video player for personal use.

3. User Responsibilities
* You are solely responsible for ensuring that any content (including but not limited by video URLs, files, shared screen content, or video calls) you provide or access via the Website complies with all applicable copyright laws and local regulations
* You must ensure that you have the legal right to share or use any content accessed or shared on the Website.
* You agree not to stream, link to, or share any content that is illegal, offensive, infringing, or otherwise prohibited by applicable law.

4. No Storage or Hosting of Content
The Website does not store or host any video or other media content. All video playback and media content are provided by the users themselves through external URLs, local files, or screen/video sharing directly from their devices. The Website is not responsible for any content that users choose to share or view.

5. Cookies and Data Usage
The Website uses cookies and local storage to enhance user experience and functionality. Google Analytics is enabled to collect anonymous statistics on the Website usage. No user-identifiable or personal information is collected or stored by the Website.

6. Limitation of Liability
The Website is provided "as is" without any warranties or guarantees. You use the Website at your own risk. The Website owner is not liable for any damages, losses, or legal actions resulting from your use of the Website or any content shared or accessed through it.

7. Changes to the Terms
The Website owner reserves the right to modify these Terms and Conditions at any time. Any changes will be posted on this page, and it is your responsibility to review these terms periodically for any changes.

8. Governing Law
These Terms and Conditions are governed by and construed in accordance with the laws of the jurisdiction in which the Website owner resides.

9. Contact Information
For any questions or concerns regarding these Terms and Conditions, please contact [email protected].

0 comments on commit e84639a

Please sign in to comment.