123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- require('./polyfill');
- window._ = require('lodash');
- window.Popper = require('popper.js').default;
- window.pixelfed = window.pixelfed || {};
- window.$ = window.jQuery = require('jquery');
- require('bootstrap');
- window.axios = require('axios');
- window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
- require('readmore-js');
- window.blurhash = require("blurhash");
- let token = document.head.querySelector('meta[name="csrf-token"]');
- if (token) {
- window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
- } else {
- console.error('CSRF token not found.');
- }
- window.App = window.App || {};
- window.App.redirect = function() {
- document.querySelectorAll('a').forEach(function(i,k) {
- let a = i.getAttribute('href');
- if(a && a.length > 5 && a.startsWith('https://')) {
- let url = new URL(a);
- if(url.host !== window.location.host && url.pathname !== '/i/redirect') {
- i.setAttribute('href', '/i/redirect?url=' + encodeURIComponent(a));
- }
- }
- });
- }
- window.App.boot = function() {
- new Vue({ el: '#content'});
- }
- window.App.util = {
- compose: {
- post: (function() {
- let path = window.location.pathname;
- let whitelist = [
- '/',
- '/timeline/public'
- ];
- if(whitelist.includes(path)) {
- $('#composeModal').modal('show');
- } else {
- window.location.href = '/?a=co';
- }
- }),
- circle: (function() {
- console.log('Unsupported method.');
- }),
- collection: (function() {
- console.log('Unsupported method.');
- }),
- loop: (function() {
- console.log('Unsupported method.');
- }),
- story: (function() {
- console.log('Unsupported method.');
- }),
- },
- time: (function() {
- return new Date;
- }),
- version: 1,
- format: {
- count: (function(count = 0, locale = 'en-GB', notation = 'compact') {
- if(count < 1) {
- return 0;
- }
- return new Intl.NumberFormat(locale, { notation: notation , compactDisplay: "short" }).format(count);
- }),
- timeAgo: (function(ts) {
- let date = Date.parse(ts);
- let seconds = Math.floor((new Date() - date) / 1000);
- let interval = Math.floor(seconds / 63072000);
- if (interval >= 1) {
- return interval + "y";
- }
- interval = Math.floor(seconds / 604800);
- if (interval >= 1) {
- return interval + "w";
- }
- interval = Math.floor(seconds / 86400);
- if (interval >= 1) {
- return interval + "d";
- }
- interval = Math.floor(seconds / 3600);
- if (interval >= 1) {
- return interval + "h";
- }
- interval = Math.floor(seconds / 60);
- if (interval >= 1) {
- return interval + "m";
- }
- return Math.floor(seconds) + "s";
- }),
- rewriteLinks: (function(i) {
- let tag = i.innerText;
- if(i.href.startsWith(window.location.origin)) {
- return i.href;
- }
- if(tag.startsWith('#') == true) {
- tag = '/discover/tags/' + tag.substr(1) +'?src=rph';
- } else if(tag.startsWith('@') == true) {
- tag = '/' + i.innerText + '?src=rpp';
- } else {
- tag = '/i/redirect?url=' + encodeURIComponent(tag);
- }
- return tag;
- })
- },
- filters: [
- ['1977','filter-1977'],
- ['Aden','filter-aden'],
- ['Amaro','filter-amaro'],
- ['Ashby','filter-ashby'],
- ['Brannan','filter-brannan'],
- ['Brooklyn','filter-brooklyn'],
- ['Charmes','filter-charmes'],
- ['Clarendon','filter-clarendon'],
- ['Crema','filter-crema'],
- ['Dogpatch','filter-dogpatch'],
- ['Earlybird','filter-earlybird'],
- ['Gingham','filter-gingham'],
- ['Ginza','filter-ginza'],
- ['Hefe','filter-hefe'],
- ['Helena','filter-helena'],
- ['Hudson','filter-hudson'],
- ['Inkwell','filter-inkwell'],
- ['Kelvin','filter-kelvin'],
- ['Kuno','filter-juno'],
- ['Lark','filter-lark'],
- ['Lo-Fi','filter-lofi'],
- ['Ludwig','filter-ludwig'],
- ['Maven','filter-maven'],
- ['Mayfair','filter-mayfair'],
- ['Moon','filter-moon'],
- ['Nashville','filter-nashville'],
- ['Perpetua','filter-perpetua'],
- ['Poprocket','filter-poprocket'],
- ['Reyes','filter-reyes'],
- ['Rise','filter-rise'],
- ['Sierra','filter-sierra'],
- ['Skyline','filter-skyline'],
- ['Slumber','filter-slumber'],
- ['Stinson','filter-stinson'],
- ['Sutro','filter-sutro'],
- ['Toaster','filter-toaster'],
- ['Valencia','filter-valencia'],
- ['Vesper','filter-vesper'],
- ['Walden','filter-walden'],
- ['Willow','filter-willow'],
- ['X-Pro II','filter-xpro-ii']
- ],
- filterCss: {
- 'filter-1977': 'sepia(.5) hue-rotate(-30deg) saturate(1.4)',
- 'filter-aden': 'sepia(.2) brightness(1.15) saturate(1.4)',
- 'filter-amaro': 'sepia(.35) contrast(1.1) brightness(1.2) saturate(1.3)',
- 'filter-ashby': 'sepia(.5) contrast(1.2) saturate(1.8)',
- 'filter-brannan': 'sepia(.4) contrast(1.25) brightness(1.1) saturate(.9) hue-rotate(-2deg)',
- 'filter-brooklyn': 'sepia(.25) contrast(1.25) brightness(1.25) hue-rotate(5deg)',
- 'filter-charmes': 'sepia(.25) contrast(1.25) brightness(1.25) saturate(1.35) hue-rotate(-5deg)',
- 'filter-clarendon': 'sepia(.15) contrast(1.25) brightness(1.25) hue-rotate(5deg)',
- 'filter-crema': 'sepia(.5) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-2deg)',
- 'filter-dogpatch': 'sepia(.35) saturate(1.1) contrast(1.5)',
- 'filter-earlybird': 'sepia(.25) contrast(1.25) brightness(1.15) saturate(.9) hue-rotate(-5deg)',
- 'filter-gingham': 'contrast(1.1) brightness(1.1)',
- 'filter-ginza': 'sepia(.25) contrast(1.15) brightness(1.2) saturate(1.35) hue-rotate(-5deg)',
- 'filter-hefe': 'sepia(.4) contrast(1.5) brightness(1.2) saturate(1.4) hue-rotate(-10deg)',
- 'filter-helena': 'sepia(.5) contrast(1.05) brightness(1.05) saturate(1.35)',
- 'filter-hudson': 'sepia(.25) contrast(1.2) brightness(1.2) saturate(1.05) hue-rotate(-15deg)',
- 'filter-inkwell': 'brightness(1.25) contrast(.85) grayscale(1)',
- 'filter-kelvin': 'sepia(.15) contrast(1.5) brightness(1.1) hue-rotate(-10deg)',
- 'filter-juno': 'sepia(.35) contrast(1.15) brightness(1.15) saturate(1.8)',
- 'filter-lark': 'sepia(.25) contrast(1.2) brightness(1.3) saturate(1.25)',
- 'filter-lofi': 'saturate(1.1) contrast(1.5)',
- 'filter-ludwig': 'sepia(.25) contrast(1.05) brightness(1.05) saturate(2)',
- 'filter-maven': 'sepia(.35) contrast(1.05) brightness(1.05) saturate(1.75)',
- 'filter-mayfair': 'contrast(1.1) brightness(1.15) saturate(1.1)',
- 'filter-moon': 'brightness(1.4) contrast(.95) saturate(0) sepia(.35)',
- 'filter-nashville': 'sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)',
- 'filter-perpetua': 'contrast(1.1) brightness(1.25) saturate(1.1)',
- 'filter-poprocket': 'sepia(.15) brightness(1.2)',
- 'filter-reyes': 'sepia(.75) contrast(.75) brightness(1.25) saturate(1.4)',
- 'filter-rise': 'sepia(.25) contrast(1.25) brightness(1.2) saturate(.9)',
- 'filter-sierra': 'sepia(.25) contrast(1.5) brightness(.9) hue-rotate(-15deg)',
- 'filter-skyline': 'sepia(.15) contrast(1.25) brightness(1.25) saturate(1.2)',
- 'filter-slumber': 'sepia(.35) contrast(1.25) saturate(1.25)',
- 'filter-stinson': 'sepia(.35) contrast(1.25) brightness(1.1) saturate(1.25)',
- 'filter-sutro': 'sepia(.4) contrast(1.2) brightness(.9) saturate(1.4) hue-rotate(-10deg)',
- 'filter-toaster': 'sepia(.25) contrast(1.5) brightness(.95) hue-rotate(-15deg)',
- 'filter-valencia': 'sepia(.25) contrast(1.1) brightness(1.1)',
- 'filter-vesper': 'sepia(.35) contrast(1.15) brightness(1.2) saturate(1.3)',
- 'filter-walden': 'sepia(.35) contrast(.8) brightness(1.25) saturate(1.4)',
- 'filter-willow': 'brightness(1.2) contrast(.85) saturate(.05) sepia(.2)',
- 'filter-xpro-ii': 'sepia(.45) contrast(1.25) brightness(1.75) saturate(1.3) hue-rotate(-5deg)'
- },
- emoji: ['๐','๐ฏ','โค๏ธ','๐','๐','๐','๐','๐ฏ','๐ข','๐
','๐','๐','๐','๐','๐คฃ','๐','๐','๐','๐','๐','๐','๐','๐','๐','๐','๐ค','๐คฉ','๐ค','๐คจ','๐','๐','๐ถ','๐','๐','๐ฃ','๐ฅ','๐ฎ','๐ค','๐ช','๐ซ','๐ด','๐','๐','๐','๐','๐คค','๐','๐','๐','๐','๐','๐ค','๐ฒ','๐','๐','๐','๐','๐ค','๐ญ','๐ฆ','๐ง','๐จ','๐ฉ','๐คฏ','๐ฌ','๐ฐ','๐ฑ','๐ณ','๐คช','๐ต','๐ก','๐ ','๐คฌ','๐ท','๐ค','๐ค','๐คข','๐คฎ','๐คง','๐','๐ค ','๐คก','๐คฅ','๐คซ','๐คญ','๐ง','๐ค','๐','๐ฟ','๐น','๐บ','๐','๐ป','๐ฝ','๐ค','๐ฉ','๐บ','๐ธ','๐น','๐ป','๐ผ','๐ฝ','๐','๐ฟ','๐พ','๐คฒ','๐','๐ค','๐','๐','๐','โ','๐ค','๐ค','๐ค','โ๏ธ','๐ค','๐ค','๐','๐','๐','๐','โ๏ธ','โ','๐ค','๐','๐','๐','๐ค','๐ช','๐','โ๏ธ','๐','๐','๐','๐','๐','๐
','๐','๐','๐ฃ','๐','๐','๐ง ','๐ฃ','๐ค','๐ฅ'
- ],
- embed: {
- post: (function(url, caption = true, likes = false, layout = 'full') {
- let u = url + '/embed?';
- u += caption ? 'caption=true&' : 'caption=false&';
- u += likes ? 'likes=true&' : 'likes=false&';
- u += layout == 'compact' ? 'layout=compact' : 'layout=full';
- return '<iframe src="'+u+'" class="pixelfed__embed" style="max-width: 100%; border: 0" width="400" allowfullscreen="allowfullscreen"></iframe><script async defer src="'+window.location.origin +'/embed.js"><\/script>';
- }),
- profile: (function(url) {
- let u = url + '/embed';
- return '<iframe src="'+u+'" class="pixelfed__embed" style="max-width: 100%; border: 0" width="400" allowfullscreen="allowfullscreen"></iframe><script async defer src="'+window.location.origin +'/embed.js"><\/script>';
- })
- },
- clipboard: (function(data) {
- return navigator.clipboard.writeText(data);
- }),
- navatar: (function() {
- $('#navbarDropdown .far').addClass('d-none');
- $('#navbarDropdown img').attr('src',window._sharedData.curUser.avatar)
- .removeClass('d-none')
- .addClass('rounded-circle border shadow')
- .attr('width', 34).attr('height', 34);
- })
- };
|