diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c6d4dda1..3c512607d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -86,7 +86,7 @@ The installation process of NodeJS is fairly simple, navigate to the NodeJS [web Once you have completed the above steps, you are ready to build and run Monkeytype. 1. Run `npm install` in the project root directory to install dependencies. -1. Run `npm run start:dev` to start a local dev server on [port 5000](http://localhost:5000). It will watch for changes and rebuild when you edit files in `src/` or `public/` directories. Use Ctrl+ C to abort it. +1. Run `npm run start:dev` to start a local dev server on [port 5000](http://localhost:5000). It will watch for changes and rebuild when you edit files in `src/` or `public/` directories. Use Ctrl+C to abort it. - Run `firebase use {your-project-id}` if you run into any errors for this. ### Standards and Guidelines diff --git a/src/js/account.js b/src/js/account.js index 3fa6a5c14..93edb17eb 100644 --- a/src/js/account.js +++ b/src/js/account.js @@ -19,6 +19,15 @@ import * as AllTimeStats from "./all-time-stats"; import * as PbTables from "./pb-tables"; import axiosInstance from "./axios-instance"; +let filterDebug = false; +//toggle filterdebug +export function toggleFilterDebug() { + filterDebug = !filterDebug; + if (filterDebug) { + console.log("filterDebug is on"); + } +} + export async function getDataAndInit() { try { await DB.initSnapshot(); @@ -370,20 +379,37 @@ export function update() { if (resdiff == undefined) { resdiff = "normal"; } - if (!ResultFilters.getFilter("difficulty", resdiff)) return; - if (!ResultFilters.getFilter("mode", result.mode)) return; + if (!ResultFilters.getFilter("difficulty", resdiff)) { + if (filterDebug) + console.log(`skipping result due to difficulty filter`, result); + return; + } + if (!ResultFilters.getFilter("mode", result.mode)) { + if (filterDebug) + console.log(`skipping result due to mode filter`, result); + return; + } + if (result.mode == "time") { let timefilter = "custom"; if ([15, 30, 60, 120].includes(parseInt(result.mode2))) { timefilter = result.mode2; } - if (!ResultFilters.getFilter("time", timefilter)) return; + if (!ResultFilters.getFilter("time", timefilter)) { + if (filterDebug) + console.log(`skipping result due to time filter`, result); + return; + } } else if (result.mode == "words") { let wordfilter = "custom"; if ([10, 25, 50, 100, 200].includes(parseInt(result.mode2))) { wordfilter = result.mode2; } - if (!ResultFilters.getFilter("words", wordfilter)) return; + if (!ResultFilters.getFilter("words", wordfilter)) { + if (filterDebug) + console.log(`skipping result due to word filter`, result); + return; + } } if (result.quoteLength != null) { @@ -400,10 +426,17 @@ export function update() { if ( filter !== null && !ResultFilters.getFilter("quoteLength", filter) - ) + ) { + if (filterDebug) + console.log(`skipping result due to quoteLength filter`, result); return; + } } - let langFilter = ResultFilters.getFilter("language", result.language); + + let langFilter = ResultFilters.getFilter( + "language", + result.language ?? "english" + ); if ( result.language === "english_expanded" && @@ -411,22 +444,44 @@ export function update() { ) { langFilter = true; } - if (!langFilter) return; + if (!langFilter) { + if (filterDebug) + console.log(`skipping result due to language filter`, result); + return; + } + let puncfilter = "off"; if (result.punctuation) { puncfilter = "on"; } - if (!ResultFilters.getFilter("punctuation", puncfilter)) return; + if (!ResultFilters.getFilter("punctuation", puncfilter)) { + if (filterDebug) + console.log(`skipping result due to punctuation filter`, result); + return; + } + let numfilter = "off"; if (result.numbers) { numfilter = "on"; } - if (!ResultFilters.getFilter("numbers", numfilter)) return; + if (!ResultFilters.getFilter("numbers", numfilter)) { + if (filterDebug) + console.log(`skipping result due to numbers filter`, result); + return; + } if (result.funbox === "none" || result.funbox === undefined) { - if (!ResultFilters.getFilter("funbox", "none")) return; + if (!ResultFilters.getFilter("funbox", "none")) { + if (filterDebug) + console.log(`skipping result due to funbox filter`, result); + return; + } } else { - if (!ResultFilters.getFilter("funbox", result.funbox)) return; + if (!ResultFilters.getFilter("funbox", result.funbox)) { + if (filterDebug) + console.log(`skipping result due to funbox filter`, result); + return; + } } let tagHide = true; @@ -454,7 +509,11 @@ export function update() { }); } - if (tagHide) return; + if (tagHide) { + if (filterDebug) + console.log(`skipping result due to tag filter`, result); + return; + } let timeSinceTest = Math.abs(result.timestamp - Date.now()) / 1000; @@ -472,7 +531,11 @@ export function update() { datehide = false; } - if (datehide) return; + if (datehide) { + if (filterDebug) + console.log(`skipping result due to date filter`, result); + return; + } filteredResults.push(result); } catch (e) { @@ -498,12 +561,17 @@ export function update() { if (Object.keys(activityChartData).includes(String(resultDate))) { activityChartData[resultDate].amount++; activityChartData[resultDate].time += - result.testDuration + result.incompleteTestSeconds; + result.testDuration + + result.incompleteTestSeconds - + (result.afkDuration ?? 0); activityChartData[resultDate].totalWpm += result.wpm; } else { activityChartData[resultDate] = { amount: 1, - time: result.testDuration + result.incompleteTestSeconds, + time: + result.testDuration + + result.incompleteTestSeconds - + (result.afkDuration ?? 0), totalWpm: result.wpm, }; } @@ -517,13 +585,16 @@ export function update() { tt = (parseFloat(result.mode2) / parseFloat(result.wpm)) * 60; } } else { - tt = parseFloat(result.testDuration); - } - if (result.incompleteTestSeconds != undefined) { - tt += result.incompleteTestSeconds; - } else if (result.restartCount != undefined && result.restartCount > 0) { - tt += (tt / 4) * result.restartCount; + tt = result.testDuration; } + + tt += (result.incompleteTestSeconds ?? 0) - (result.afkDuration ?? 0); + + // if (result.incompleteTestSeconds != undefined) { + // tt += result.incompleteTestSeconds; + // } else if (result.restartCount != undefined && result.restartCount > 0) { + // tt += (tt / 4) * result.restartCount; + // } totalSecondsFiltered += tt; if (last10 < 10) { @@ -684,24 +755,9 @@ export function update() { $(".pageAccount .triplegroup.stats").removeClass("hidden"); } - let th = Math.floor(totalSeconds / 3600); - let tm = Math.floor((totalSeconds % 3600) / 60); - let ts = Math.floor((totalSeconds % 3600) % 60); - $(".pageAccount .timeTotal .val").text(` - - ${th < 10 ? "0" + th : th}:${tm < 10 ? "0" + tm : tm}:${ - ts < 10 ? "0" + ts : ts - } - `); - let tfh = Math.floor(totalSecondsFiltered / 3600); - let tfm = Math.floor((totalSecondsFiltered % 3600) / 60); - let tfs = Math.floor((totalSecondsFiltered % 3600) % 60); - $(".pageAccount .timeTotalFiltered .val").text(` - - ${tfh < 10 ? "0" + tfh : tfh}:${tfm < 10 ? "0" + tfm : tfm}:${ - tfs < 10 ? "0" + tfs : tfs - } - `); + $(".pageAccount .timeTotalFiltered .val").text( + Misc.secondsToString(Math.round(totalSecondsFiltered), true) + ); $(".pageAccount .highestWpm .val").text(topWpm); $(".pageAccount .averageWpm .val").text(Math.round(totalWpm / testCount)); @@ -745,9 +801,9 @@ export function update() { )}%)` ); - $(".pageAccount .avgRestart .val").text( - (testRestarts / testCount).toFixed(1) - ); + $(".pageAccount .testsCompleted .avgres").text(` + ${(testRestarts / testCount).toFixed(1)} restarts per completed test + `); if (ChartController.accountHistory.data.datasets[0].data.length > 0) { ChartController.accountHistory.options.plugins.trendlineLinear = true; diff --git a/src/js/account/all-time-stats.js b/src/js/account/all-time-stats.js index 4983f35b9..636d5c266 100644 --- a/src/js/account/all-time-stats.js +++ b/src/js/account/all-time-stats.js @@ -1,4 +1,5 @@ import * as DB from "./db"; +import * as Misc from "./misc"; export function clear() { $(".pageAccount .globalTimeTyping .val").text(`-`); @@ -8,15 +9,12 @@ export function clear() { export function update() { if (DB.getSnapshot().globalStats.time != undefined) { - let th = Math.floor(DB.getSnapshot().globalStats.time / 3600); - let tm = Math.floor((DB.getSnapshot().globalStats.time % 3600) / 60); - let ts = Math.floor((DB.getSnapshot().globalStats.time % 3600) % 60); - $(".pageAccount .globalTimeTyping .val").text(` - - ${th < 10 ? "0" + th : th}:${tm < 10 ? "0" + tm : tm}:${ - ts < 10 ? "0" + ts : ts - } - `); + // let th = Math.floor(DB.getSnapshot().globalStats.time / 3600); + // let tm = Math.floor((DB.getSnapshot().globalStats.time % 3600) / 60); + // let ts = Math.floor((DB.getSnapshot().globalStats.time % 3600) % 60); + $(".pageAccount .globalTimeTyping .val").text( + Misc.secondsToString(Math.round(DB.getSnapshot().globalStats.time), true) + ); } if (DB.getSnapshot().globalStats.started != undefined) { $(".pageAccount .globalTestsStarted .val").text( diff --git a/src/js/chart-controller.js b/src/js/chart-controller.js index aab13592d..81535c0de 100644 --- a/src/js/chart-controller.js +++ b/src/js/chart-controller.js @@ -364,7 +364,8 @@ export let accountActivity = new Chart( data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]; if (tooltipItem.datasetIndex === 0) { return `Time Typing: ${Misc.secondsToString( - resultData.y + Math.round(resultData.y), + true )}\nTests Completed: ${resultData.amount}`; } else if (tooltipItem.datasetIndex === 1) { return `Average Wpm: ${Misc.roundTo2(resultData.y)}`; diff --git a/src/js/commandline-lists.js b/src/js/commandline-lists.js index 7c0992f0c..22d3fb641 100644 --- a/src/js/commandline-lists.js +++ b/src/js/commandline-lists.js @@ -201,7 +201,7 @@ let commandsTags = { }; export function updateTagCommands() { - if (DB.getSnapshot().tags.length > 0) { + if (DB.getSnapshot()?.tags?.length > 0) { commandsTags.list = []; commandsTags.list.push({ @@ -266,7 +266,7 @@ let commandsPresets = { }; export function updatePresetCommands() { - if (DB.getSnapshot().presets.length > 0) { + if (DB.getSnapshot()?.presets?.length > 0) { commandsPresets.list = []; DB.getSnapshot().presets.forEach((preset) => { diff --git a/src/js/config.js b/src/js/config.js index 8b62b5592..db479dcbf 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -1652,180 +1652,101 @@ export function apply(configObj) { try { setEnableAds(configObj.enableAds, true); - let addemo = false; - if ( - firebase.app().options.projectId === "monkey-type-dev-67af4" || - window.location.hostname === "localhost" - ) { - addemo = true; - } + // let addemo = false; + // if ( + // firebase.app().options.projectId === "monkey-type-dev-67af4" || + // window.location.hostname === "localhost" + // ) { + // addemo = true; + // } if (config.enableAds === "max" || config.enableAds === "on") { if (config.enableAds === "max") { - window["nitroAds"].createAd("nitropay_ad_left", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - sizes: [["160", "600"]], - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - mediaQuery: "(min-width: 1330px)", - demo: addemo, - }); - $("#nitropay_ad_left").removeClass("hidden"); + // - window["nitroAds"].createAd("nitropay_ad_right", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - sizes: [["160", "600"]], - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - mediaQuery: "(min-width: 1330px)", - demo: addemo, - }); - $("#nitropay_ad_right").removeClass("hidden"); + $("#ad_rich_media").removeClass("hidden"); + $("#ad_rich_media").html( + `` + ); } else { - $("#nitropay_ad_left").remove(); - $("#nitropay_ad_right").remove(); + $("#ad_rich_media").remove(); } - window["nitroAds"].createAd("nitropay_ad_footer", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - sizes: [["970", "90"]], - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - mediaQuery: "(min-width: 1025px)", - demo: addemo, - }); - $("#nitropay_ad_footer").removeClass("hidden"); + //
- window["nitroAds"].createAd("nitropay_ad_footer2", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - sizes: [["728", "90"]], - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - mediaQuery: "(min-width: 730px) and (max-width: 1024px)", - demo: addemo, - }); - $("#nitropay_ad_footer2").removeClass("hidden"); + $("#ad_footer").html( + `
` + ); + $("#ad_footer").removeClass("hidden"); - window["nitroAds"].createAd("nitropay_ad_footer3", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - sizes: [["320", "50"]], - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - mediaQuery: "(max-width: 730px)", - demo: addemo, - }); - $("#nitropay_ad_footer3").removeClass("hidden"); + // $("#ad_footer2").html(`
`); + // $("#ad_footer2").removeClass("hidden"); - window["nitroAds"].createAd("nitropay_ad_about", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - demo: addemo, - }); - $("#nitropay_ad_about").removeClass("hidden"); + $("#ad_about1").html( + `
` + ); + $("#ad_about1").removeClass("hidden"); - window["nitroAds"].createAd("nitropay_ad_settings1", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - demo: addemo, - }); - $("#nitropay_ad_settings1").removeClass("hidden"); + $("#ad_about2").html( + `
` + ); + $("#ad_about2").removeClass("hidden"); - window["nitroAds"].createAd("nitropay_ad_settings2", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - demo: addemo, - }); - $("#nitropay_ad_settings2").removeClass("hidden"); + $("#ad_settings0").html( + `
` + ); + $("#ad_settings0").removeClass("hidden"); - window["nitroAds"].createAd("nitropay_ad_account", { - refreshLimit: 10, - refreshTime: 30, - renderVisibleOnly: false, - refreshVisibleOnly: true, - report: { - enabled: true, - wording: "Report Ad", - position: "bottom-right", - }, - demo: addemo, - }); - $("#nitropay_ad_account").removeClass("hidden"); + $("#ad_settings1").html( + `
` + ); + $("#ad_settings1").removeClass("hidden"); + + $("#ad_settings2").html( + `
` + ); + $("#ad_settings2").removeClass("hidden"); + + $("#ad_settings3").html( + `
` + ); + $("#ad_settings3").removeClass("hidden"); + + $("#ad_account").html( + `
` + ); + $("#ad_account").removeClass("hidden"); } else { $(".footerads").remove(); - $("#nitropay_ad_left").remove(); - $("#nitropay_ad_right").remove(); - $("#nitropay_ad_footer").remove(); - $("#nitropay_ad_footer2").remove(); - $("#nitropay_ad_footer3").remove(); - $("#nitropay_ad_settings1").remove(); - $("#nitropay_ad_settings2").remove(); - $("#nitropay_ad_account").remove(); - $("#nitropay_ad_about").remove(); + $("#ad_left").remove(); + $("#ad_right").remove(); + $("#ad_footer").remove(); + $("#ad_footer2").remove(); + $("#ad_footer3").remove(); + $("#ad_settings0").remove(); + $("#ad_settings1").remove(); + $("#ad_settings2").remove(); + $("#ad_settings3").remove(); + $("#ad_account").remove(); + $("#ad_about1").remove(); + $("#ad_about2").remove(); } } catch (e) { Notifications.add("Error initialising ads: " + e.message); console.log("error initialising ads " + e.message); $(".footerads").remove(); - $("#nitropay_ad_left").remove(); - $("#nitropay_ad_right").remove(); - $("#nitropay_ad_footer").remove(); - $("#nitropay_ad_footer2").remove(); - $("#nitropay_ad_footer3").remove(); - $("#nitropay_ad_settings1").remove(); - $("#nitropay_ad_settings2").remove(); - $("#nitropay_ad_account").remove(); - $("#nitropay_ad_about").remove(); + $("#ad_left").remove(); + $("#ad_right").remove(); + $("#ad_footer").remove(); + $("#ad_footer2").remove(); + $("#ad_footer3").remove(); + $("#ad_settings0").remove(); + $("#ad_settings1").remove(); + $("#ad_settings2").remove(); + $("#ad_settings3").remove(); + $("#ad_account").remove(); + $("#ad_about1").remove(); + $("#ad_about2").remove(); } } TestUI.updateModesNotice(); diff --git a/src/js/exports.js b/src/js/exports.js index 4540c50d6..2230798c4 100644 --- a/src/js/exports.js +++ b/src/js/exports.js @@ -25,3 +25,5 @@ global.crownTest = async () => { await DB.getUserHighestWpm("time", 60, false, "english", "normal") ); }; + +global.filterDebug = Account.toggleFilterDebug; diff --git a/src/js/global-dependencies.js b/src/js/global-dependencies.js index 90c49d6b3..10fc9822c 100644 --- a/src/js/global-dependencies.js +++ b/src/js/global-dependencies.js @@ -13,7 +13,7 @@ import * as ResultFilters from "./result-filters"; import Config from "./config"; import * as SimplePopups from "./simple-popups"; import * as AccountController from "./account-controller"; -import {toggleGlarses} from "./test-logic"; +import { toggleGlarses } from "./test-logic"; import "./caps-warning"; import "./support-popup"; import "./version-popup"; @@ -22,3 +22,4 @@ import "./import-settings-popup"; import "./input-controller"; import "./ready"; import "./about-page"; +import * as Account from "./account"; diff --git a/src/js/input-controller.js b/src/js/input-controller.js index b7a5639fa..c1fed28ff 100644 --- a/src/js/input-controller.js +++ b/src/js/input-controller.js @@ -167,7 +167,7 @@ function handleBackspace(event) { // } if ( - /^[ £§`~!@#$%^&*()_+\-=[\]{};':"|,./<>?]*$/g.test( + /^[ £§`~!@#$%^&*()_+\\\-=[\]{};':"|,./<>?]*$/g.test( TestLogic.input.getCurrent() ) ) { @@ -186,24 +186,29 @@ function handleBackspace(event) { TestLogic.input.popHistory(); TestLogic.corrected.popHistory(); } else { - const regex = new RegExp(/[ £§`~!@#$%^&*()_+\-=[\]{};':"|,./<>?]/, "g"); + const regex = new RegExp( + /[ £§`~!@#$%^&*()_+\\\-=[\]{};':"|,./<>?]/, + "g" + ); let input = TestLogic.input.getCurrent(); regex.test(input); // let puncIndex = regex.lastIndex; let puncIndex = input.lastIndexOfRegex( - /[ £§`~!@#$%^&*()_+\-=[\]{};':"|,./<>?]/g + /[ £§`~!@#$%^&*()_+\\\-=[\]{};':"|,./<>?]/g ); while ( - /[ £§`~!@#$%^&*()_+\-=[\]{};':"|,./<>?]/g.test(input.slice(-1)) + /[ £§`~!@#$%^&*()_+\\\-=[\]{};':"|,./<>?]/g.test(input.slice(-1)) ) { input = input.substring(0, input.length - 1); } puncIndex = input.lastIndexOfRegex( - /[ £§`~!@#$%^&*()_+\-=[\]{};':"|,./<>?]/g + /[ £§`~!@#$%^&*()_+\\\-=[\]{};':"|,./<>?]/g + ); + TestLogic.input.setCurrent( + input.substring(0, puncIndex == 0 ? 0 : puncIndex + 1) ); - TestLogic.input.setCurrent(input.substring(0, puncIndex + 1)); } } else { TestLogic.input.setCurrent( diff --git a/src/js/layouts.js b/src/js/layouts.js index c28bbdc03..113c2c6a2 100644 --- a/src/js/layouts.js +++ b/src/js/layouts.js @@ -365,5 +365,25 @@ const layouts = { " " ], }, + APT: { + keymapShowTopRow: false, + keys: [ + "`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+", + "wW", "cC", "dD", "lL", "'\"", "/?", "yY", "oO", "uU", "qQ", "[{", "]}", "\\|", + "rR", "sS", "tT", "hH", "kK", "pP", "nN", "eE", "iI", "aA", ";:", + "\\|", "vV", "bB", "gG", "mM", ",<", ".>", "fF", "jJ", "xX", "zZ", + " " + ] + }, + Thai_Kedmanee: { + keymapShowTopRow: true, + keys: [ + "-%", "ๅ+", "/๑", "_๒", "ภ๓", "ถ๔", "ุู", "ึ฿", "ค๕", "ต๖", "จ๗", "ข๘", "ช๙", + "ๆ๐", "ไ\"", "ำฎ", "พฑ", "ะธ", "ัํ", "ี๊", "รณ", "นฯ", "ยญ", "บฐ", "ล,", "ฃฅ", + "ฟฤ", "หฆ", "กฏ", "ดโ", "เฌ", "้็", "่๋", "าษ", "สศ", "วซ", "ง.", + "ฃฅ", "ผ(", "ป)", "แฉ", "อฮ", "ิฺ", "ื์", "ท?", "มฒ", "ใฬ", "ฝฦ", + " " + ] + }, } export default layouts; diff --git a/src/js/popups/custom-background-filter.js b/src/js/popups/custom-background-filter.js index 3f3ddf0a4..aa4b99c02 100644 --- a/src/js/popups/custom-background-filter.js +++ b/src/js/popups/custom-background-filter.js @@ -34,9 +34,15 @@ export function getCSS() { export function apply() { let filterCSS = getCSS(); - $(".customBackground").css({ + let css = { filter: filterCSS, - }); + width: `calc(100% + ${filters.blur.value * 4}rem)`, + height: `calc(100% + ${filters.blur.value * 4}rem)`, + left: `-${filters.blur.value * 2}rem`, + top: `-${filters.blur.value * 2}rem`, + position: "absolute", + }; + $(".customBackground img").css(css); } function syncSliders() { diff --git a/src/js/test/test-logic.js b/src/js/test/test-logic.js index 899d80f3d..f20944a8a 100644 --- a/src/js/test/test-logic.js +++ b/src/js/test/test-logic.js @@ -1251,13 +1251,15 @@ export function finish(difficultyFailed = false) { if (afkSecondsPercent > 0) { $("#result .stats .time .bottom .afk").text(afkSecondsPercent + "% afk"); } - TodayTracker.addSeconds( - testtime + - (TestStats.incompleteSeconds < 0 - ? 0 - : Misc.roundTo2(TestStats.incompleteSeconds)) - - afkseconds - ); + if (!difficultyFailed) { + TodayTracker.addSeconds( + testtime + + (TestStats.incompleteSeconds < 0 + ? 0 + : Misc.roundTo2(TestStats.incompleteSeconds)) - + afkseconds + ); + } $("#result .stats .time .bottom .timeToday").text(TodayTracker.getString()); $("#result .stats .key .bottom").text(testtime + "s"); $("#words").removeClass("blurred"); diff --git a/src/js/theme-controller.js b/src/js/theme-controller.js index 2f9d31047..f330d34b1 100644 --- a/src/js/theme-controller.js +++ b/src/js/theme-controller.js @@ -165,25 +165,29 @@ export function clearRandom() { } export function applyCustomBackground() { - $(".customBackground").css({ - backgroundImage: `url(${Config.customBackground})`, - backgroundAttachment: "fixed", - }); + // $(".customBackground").css({ + // backgroundImage: `url(${Config.customBackground})`, + // backgroundAttachment: "fixed", + // }); if (Config.customBackground === "") { $("#words").removeClass("noErrorBorder"); + $(".customBackground img").remove(); } else { $("#words").addClass("noErrorBorder"); + $(".customBackground").html(``); } } export function applyCustomBackgroundSize() { if (Config.customBackgroundSize == "max") { - $(".customBackground").css({ - backgroundSize: "100% 100%", + $(".customBackground img").css({ + // width: "calc(100%)", + // height: "calc(100%)", + objectFit: "", }); } else if (Config.customBackgroundSize != "") { - $(".customBackground").css({ - backgroundSize: Config.customBackgroundSize, + $(".customBackground img").css({ + objectFit: Config.customBackgroundSize, }); } } diff --git a/src/sass/style.scss b/src/sass/style.scss index 049462ae0..db6891392 100644 --- a/src/sass/style.scss +++ b/src/sass/style.scss @@ -141,6 +141,9 @@ body { background-position: center center; background-repeat: no-repeat; z-index: -999; + justify-content: center; + align-items: center; + display: flex; } html { @@ -2091,7 +2094,7 @@ key { } .source { - width: 25vw; + max-width: 30rem; } .tags .bottom .fas { @@ -3365,7 +3368,7 @@ key { .val { font-size: 3rem; - line-height: 3rem; + line-height: 3.5rem; } &.chart { diff --git a/static/index.html b/static/index.html index 43bcc1b84..30bb3fe5c 100644 --- a/static/index.html +++ b/static/index.html @@ -70,18 +70,26 @@ - --> + +
+
@@ -921,7 +929,6 @@
- - +
- diff --git a/static/languages/_groups.json b/static/languages/_groups.json index 714795172..dec39b5e6 100644 --- a/static/languages/_groups.json +++ b/static/languages/_groups.json @@ -216,6 +216,10 @@ "name": "urdu", "languages": ["urdu", "urdu_1k"] }, + { + "name": "albanian", + "languanges": ["albanian", "albanian_1k"] + }, { "name": "code", "languages": [ diff --git a/static/languages/_list.json b/static/languages/_list.json index 766c75ff3..289530e41 100644 --- a/static/languages/_list.json +++ b/static/languages/_list.json @@ -115,6 +115,8 @@ ,"esperanto_h_sistemo_36k" ,"urdu" ,"urdu_1k" + ,"albanian" + ,"albanian_1k" ,"twitch_emotes" ,"pig_latin" ,"code_python" diff --git a/static/languages/albanian.json b/static/languages/albanian.json new file mode 100644 index 000000000..8de623774 --- /dev/null +++ b/static/languages/albanian.json @@ -0,0 +1,206 @@ +{ + "name": "albanian", + "leftToRight": true, + "words": [ + "të", + "e", + "në", + "do", + "nuk", + "është", + "më", + "po", + "që", + "dhe", + "për", + "një", + "me", + "se", + "ta", + "unë", + "ka", + "ti", + "jo", + "te", + "mirë", + "mund", + "ju", + "çfarë", + "nga", + "si", + "duhet", + "ne", + "kjo", + "kam", + "këtë", + "ai", + "por", + "shumë", + "jam", + "di", + "këtu", + "je", + "ke", + "a", + "mos", + "atë", + "tani", + "ajo", + "ishte", + "u", + "ku", + "vetëm", + "nëse", + "dua", + "kur", + "janë", + "edhe", + "mua", + "ata", + "rregull", + "kemi", + "sa", + "na", + "ty", + "gjithë", + "pse", + "duke", + "eshte", + "oh", + "apo", + "ky", + "tij", + "gjë", + "pak", + "jemi", + "parë", + "diçka", + "bëj", + "kush", + "keq", + "nje", + "im", + "faleminderit", + "qe", + "per", + "jeni", + "keni", + "vjen", + "dy", + "mendoj", + "lutem", + "jetë", + "para", + "tjetër", + "bërë", + "kështu", + "atje", + "kanë", + "së", + "hej", + "pra", + "sepse", + "them", + "ja", + "time", + "tek", + "bën", + "pa", + "ime", + "duket", + "asgjë", + "ndonjë", + "vërtetë", + "shkojmë", + "eja", + "bukur", + "ndoshta", + "shiko", + "gjitha", + "çka", + "pas", + "disa", + "kohë", + "tim", + "zot", + "qenë", + "këto", + "zotëri", + "ma", + "ashtu", + "njeri", + "çdo", + "prit", + "mendon", + "une", + "tënde", + "kurrë", + "ato", + "atëherë", + "kishte", + "tuaj", + "shkoj", + "hajde", + "dreqin", + "ose", + "aty", + "saj", + "deri", + "kaq", + "ia", + "tyre", + "jashtë", + "shtëpi", + "thotë", + "prej", + "marrë", + "vdekur", + "mire", + "sikur", + "punë", + "isha", + "tha", + "as", + "dreq", + "gati", + "bëjmë", + "aq", + "brenda", + "ditë", + "yt", + "gjithçka", + "fundit", + "herë", + "shoh", + "pastaj", + "vend", + "dikush", + "kisha", + "shko", + "vërtet", + "le", + "thjesht", + "bësh", + "jote", + "tënd", + "dashur", + "zoti", + "besoj", + "marr", + "akoma", + "juaj", + "fal", + "kete", + "ndodh", + "sigurisht", + "sot", + "përse", + "jep", + "poshtë", + "mjaft", + "epo", + "njerëz", + "shpejt", + "asnjë" + ] +} diff --git a/static/languages/albanian_1k.json b/static/languages/albanian_1k.json new file mode 100644 index 000000000..3caf836d8 --- /dev/null +++ b/static/languages/albanian_1k.json @@ -0,0 +1,1006 @@ +{ + "name": "albanian", + "leftToRight": true, + "words": [ + "si", + "I", + "e tij", + "që", + "ai", + "ishte", + "për", + "në", + "janë", + "me", + "ata", + "jetë", + "në", + "një", + "kam", + "kjo", + "nga", + "nga", + "hot", + "fjalë", + "por", + "çfarë", + "disa", + "është", + "ajo", + "ju", + "ose", + "kishte", + "thonë", + "i", + "në", + "dhe", + "një", + "në", + "ne", + "mund", + "jashtë", + "tjetër", + "ishin", + "e cila", + "bëj", + "tyre", + "koha", + "nëse", + "do", + "si", + "tha", + "një", + "çdo", + "them", + "bën", + "i vendosur", + "tre", + "dua", + "ajrit", + "mirë", + "edhe", + "luajnë", + "vogël", + "fund", + "vendos", + "shtëpi", + "lexoj", + "dorë", + "port", + "i madh", + "magji", + "të shtoni", + "edhe", + "tokë", + "këtu", + "duhet", + "i madh", + "i lartë", + "i tillë", + "ndjek", + "akt", + "pse", + "kërkoj", + "burra", + "ndryshim", + "shkoi", + "dritë", + "lloj", + "nga", + "duhet", + "shtëpi", + "foto", + "përpiqem", + "na", + "përsëri", + "kafshëve", + "pikë", + "nënë", + "botëror", + "afër", + "ndërtuar", + "vetë", + "toka", + "baba", + "ndonjë", + "të reja", + "punë", + "pjesë", + "marrë", + "marrë", + "vendi", + "bërë", + "jetojnë", + "ku", + "pas", + "mbrapa", + "pak", + "vetëm", + "rreth", + "njeri", + "vit", + "erdhi", + "show", + "çdo", + "mirë", + "mua", + "jap", + "tonë", + "nën", + "Emri", + "shumë", + "me anë të", + "vetëm", + "formë", + "fjali", + "i madh", + "mendoj", + "thonë", + "të ndihmojë", + "ulët", + "linjë", + "ndryshoj", + "kthesë", + "shkaku", + "shumë", + "mesatare", + "para", + "veprim", + "drejtë", + "djalë", + "vjetër", + "shumë", + "i njëjtë", + "ajo", + "të gjithë", + "atje", + "kur", + "up", + "përdorimi", + "tuaj", + "mënyrë", + "për", + "shumë", + "pastaj", + "ata", + "shkruaj", + "do", + "si", + "kështu", + "këto", + "e saj", + "gjatë", + "bëj", + "gjë", + "shih", + "atë", + "dy", + "ka", + "shikoni", + "më shumë", + "ditë", + "mund", + "shkoj", + "eja", + "bëri", + "numri", + "zë", + "asnjë", + "më", + "njerëz", + "tim", + "mbi", + "di", + "ujë", + "se", + "thirrje", + "parë", + "që", + "mund", + "poshtë", + "anë", + "qenë", + "tani", + "gjeni", + "kreu", + "qëndrim", + "vet", + "faqe", + "duhet", + "vendi", + "gjetur", + "përgjigje", + "shkollë", + "rritet", + "Studimi", + "ende", + "mësoj", + "bimë", + "mbuluar", + "ushqim", + "dielli", + "katër", + "në mes të", + "shtet", + "mbaj", + "sy", + "kurrë", + "fundit", + "le të", + "mendimi", + "qytet", + "pemë", + "kalojnë", + "fermë", + "vështirë", + "fillimi", + "mund", + "histori", + "pa", + "tani", + "deti", + "barazim", + "la", + "vonë", + "drejtuar", + "nuk", + "ndërsa", + "shtypi", + "afër", + "natën", + "real", + "jetë", + "pak", + "veri", + "libri", + "kryer", + "mori", + "shkenca", + "hani", + "dhomë", + "mik", + "filloi", + "Ideja", + "peshk", + "mal", + "stop", + "dikur", + "bazë", + "dëgjojë", + "kalë", + "prerë", + "i sigurt", + "shikojnë", + "ngjyra", + "fytyrë", + "dru", + "kryesore", + "hapur", + "duket", + "së bashku", + "tjetër", + "e bardhë", + "fëmijë", + "të fillojë", + "mori", + "eci", + "shembull", + "lehtësuar", + "letër", + "grup", + "gjithmonë", + "muzikë", + "ato", + "të dy", + "mark", + "shpesh", + "letër", + "deri", + "milje", + "lumi", + "makinë", + "këmbët", + "kujdes", + "i dytë", + "mjaft", + "plain", + "vajzë", + "zakonshme", + "i ri", + "gati", + "sipër", + "kurrë", + "i kuq", + "lista", + "ndonëse", + "të ndjehen të", + "flasim", + "zog", + "shpejt", + "trupi", + "qen", + "familja", + "drejtpërdrejtë", + "paraqesin", + "largohen", + "song", + "të matur", + "dyer", + "produkt", + "e zezë", + "i shkurtër", + "numëror", + "klasë", + "era", + "pyetje", + "ndodhë", + "i plotë", + "anije", + "zonë", + "gjysmë", + "shkëmb", + "mënyrë", + "zjarri", + "jug", + "problemi", + "pjesë", + "tha", + "dinte", + "kaloj", + "që prej", + "top", + "tërë", + "mbreti", + "rrugë", + "inç", + "shumohen", + "asgjë", + "Sigurisht", + "qëndrojnë", + "rrotë", + "plotë", + "forca", + "blu", + "objekt", + "vendosë", + "sipërfaqe", + "thellë", + "moon", + "ishull", + "këmbë", + "sistemi", + "i zënë", + "provë", + "rekord", + "varkë", + "përbashkët", + "ari", + "të jetë e mundur", + "aeroplan", + "Në vend", + "thatë", + "pyes veten", + "qesh", + "mijë", + "më parë", + "vrapoi", + "kontrolloj", + "lojë", + "formë", + "barazojnë", + "hot", + "Miss", + "solli", + "ngrohjes", + "borë", + "gomë", + "sjellë", + "po", + "i largët", + "mbushur", + "lindje", + "bojë", + "gjuha", + "në mesin e", + "njësi", + "fuqia", + "qytet", + "gjobë", + "sigurt", + "fluturojnë", + "bien", + "të çojë", + "qaj", + "errët", + "makinë", + "shënim", + "pres", + "Plani", + "shifër", + "yll", + "kuti", + "emër", + "fushë", + "tjetër", + "saktë", + "gjendje", + "kile", + "e bërë", + "bukuri", + "makinë", + "qëndroi", + "përmbaj", + "para", + "mësojnë", + "javë", + "përfundimtar", + "dha", + "e gjelbër", + "oh", + "shpejtë", + "zhvilloj", + "oqean", + "ngrohtë", + "pa pagesë", + "minutë", + "fortë", + "të veçantë", + "mendja", + "prapa", + "qartë", + "bisht", + "prodhojnë", + "fakti", + "hapësirë", + "dëgjuar", + "mirë", + "orë", + "më mirë", + "e vërtetë", + "gjatë", + "njëqind", + "pesë", + "kujtoj", + "hapi", + "fillim", + "mbajë", + "perëndim", + "terren", + "interesi", + "arrijnë", + "shpejtë", + "folje", + "këndoj", + "dëgjoni", + "gjashtë", + "Tabela", + "udhëtimit", + "më pak", + "mëngjes", + "dhjetë", + "thjeshtë", + "disa", + "zanore", + "drejt", + "luftë", + "vë", + "kundër", + "model", + "i ngadalshëm", + "qendër", + "dashuri", + "person", + "paratë", + "shërbejnë", + "duket", + "rrugë", + "Harta", + "shi", + "rregull", + "qeverisur", + "tërheq", + "ftohtë", + "njoftim", + "zë", + "energjisë", + "gjueti", + "mundshme", + "krevat", + "vëlla", + "vezë", + "udhëtim", + "qelizë", + "besoj", + "ndoshta", + "marr", + "papritur", + "të llogarisë", + "katrore", + "arsyeja", + "Gjatësia", + "përfaqësojnë", + "art", + "subjekt", + "rajoni", + "Madhësia", + "ndryshojnë", + "vendosen", + "flasin", + "pesha", + "përgjithshme", + "akull", + "çështje", + "rrethi", + "palë", + "përfshijnë", + "ndarje", + "rrokje", + "ndjerë", + "i madh", + "top", + "ende", + "vala", + "rënie", + "zemra", + "jam", + "pranishëm", + "rëndë", + "valle", + "motor", + "pozita", + "krah", + "të gjerë", + "lundrojnë", + "material", + "fraksion", + "pyjeve", + "rri", + "garë", + "dritare", + "dyqan", + "verë", + "tren", + "gjumë", + "provoj", + "i vetëm", + "këmbë", + "ushtrim", + "mur", + "kapur", + "mali", + "uroj", + "qiell", + "bordi", + "lumturi", + "dimrit", + "sat", + "shkruar", + "egra", + "instrument", + "mbajtur", + "qelqi", + "bari", + "lopë", + "punë", + "edge", + "shenjë", + "vizitë", + "e kaluara", + "e butë", + "argëtim", + "ndritshme", + "gazit", + "mot", + "muaj", + "milion", + "mbajnë", + "finish", + "të lumtur", + "shpresoj", + "lule", + "vesh", + "çuditshme", + "shkuar", + "tregtisë", + "melodi", + "udhëtim", + "zyrë", + "marrë", + "rresht", + "gojë", + "saktë", + "simbol", + "vdes", + "më pak", + "probleme", + "bërtas", + "me përjashtim të", + "shkroi", + "farë", + "ton", + "bashkohen", + "sugjerojnë", + "i pastër", + "pushim", + "lady", + "oborr", + "ngrihem", + "keq", + "goditje", + "naftës", + "gjak", + "prek", + "u rrit", + "cent", + "përzierje", + "ekipi", + "tela", + "kosto", + "humbur", + "kafe", + "vesh", + "kopsht", + "barabartë", + "dërguar", + "zgjidhni", + "ra", + "përshtaten", + "rrjedhë", + "drejtë", + "banka", + "mbledhë", + "ruani", + "kontrollit", + "dhjetor", + "vesh", + "tjetër", + "mjaft", + "thyen", + "rasti", + "mesme", + "vrasin", + "djali", + "liqeni", + "moment", + "shkallë", + "me zë të lartë", + "pranverë", + "vëzhguar", + "fëmijë", + "drejt", + "bashkëtingëllore", + "komb", + "fjalor", + "qumësht", + "shpejtësi", + "Metoda", + "organ", + "paguajnë", + "mosha", + "seksion", + "veshje", + "cloud", + "surprizë", + "i qetë", + "guri", + "vogël", + "ngjit", + "i ftohtë", + "dizajn", + "varfër", + "shumë", + "eksperiment", + "fund", + "kyç", + "hekuri", + "i vetëm", + "shkop", + "banesë", + "njëzet", + "lëkurës", + "buzëqeshje", + "rrudhë", + "vrimë", + "kërcejnë", + "fëmijë", + "tetë", + "fshati", + "takohen", + "rrënjë", + "blej", + "të rritur", + "zgjidhur", + "metalike", + "nëse", + "shtytje", + "shtatë", + "paragraf", + "tretë", + "duhet", + "mbajtur", + "flokët", + "përshkruajnë", + "kuzhinier", + "kati", + "ose", + "Rezultati", + "djeg", + "kodër", + "i sigurt", + "mace", + "shekulli", + "konsiderojnë", + "lloj", + "ligji", + "bit", + "Bregdeti", + "kopje", + "fraza", + "heshtur", + "i gjatë", + "rërë", + "tokës", + "roll", + "temperatura", + "gisht", + "industri", + "Vlera", + "lufta", + "gënjeshtër", + "rrah", + "nxeh", + "natyrore", + "view", + "kuptim", + "kapitalit", + "nuk do të", + "karrige", + "rrezik", + "fruta", + "i pasur", + "i trashë", + "ushtar", + "procesi", + "operoj", + "praktikë", + "të ndara", + "i vështirë", + "mjeku", + "ju lutem", + "mbrojtur", + "mesditë", + "kulture", + "moderne", + "element", + "hit", + "studenti", + "qoshe", + "parti", + "furnizim", + "të cilit", + "gjetur", + "unazë", + "karakter", + "insekteve", + "kapur", + "periudha", + "tregojnë", + "radio", + "foli", + "atom", + "njerëzore", + "historia", + "efekti", + "elektrike", + "presin", + "kockave", + "hekurudhor", + "imagjinoni", + "sigurojë", + "pajtohem", + "kështu", + "i butë", + "grua", + "kapiten", + "guess", + "nevojshme", + "mprehtë", + "krahut", + "krijuar", + "fqinji", + "laj", + "lakuriq nate", + "më tepër", + "turmë", + "misri", + "të krahasuar", + "poemë", + "string", + "zile", + "varet", + "mish", + "fshij", + "tub", + "i famshëm", + "dollar", + "lumë", + "frikë", + "pamje", + "i hollë", + "trekëndësh", + "planet", + "nxitim", + "shefi", + "koloni", + "ora", + "minave", + "kravatë", + "hyjnë", + "i madh", + "freskët", + "kërko", + "dërgoni", + "verdhë", + "armë", + "lejojnë", + "print", + "vdekur", + "vend", + "shkretëtirë", + "kostum", + "aktuale", + "ashensor", + "u rrit", + "arrijnë", + "mjeshtër", + "udhë", + "prind", + "breg", + "ndarje", + "fletë", + "substancë", + "favor", + "lidhur", + "pas", + "shpenzojnë", + "akord", + "yndyrë", + "kënaqur", + "origjinal", + "pjesa", + "stacion", + "baba", + "bukë", + "ngarkuar", + "i duhur", + "bar", + "Oferta", + "segment", + "rob", + "duck", + "i menjëhershëm", + "tregu", + "shkallë", + "populloj", + "zogth", + "i dashur", + "armik", + "përgjigjen", + "pije", + "ndodhin", + "mbështetje", + "fjalim", + "natyra", + "varg", + "avull", + "lëvizje", + "rrugë", + "lëngshme", + "log", + "do të thoshte", + "herës", + "dhëmbët", + "shell", + "qafë", + "oksigjen", + "sheqer", + "vdekja", + "mjaft", + "aftësi", + "gratë", + "sezon", + "zgjidhje", + "magnet", + "argjendi", + "thank", + "degë", + "ndeshje", + "prapashtesë", + "sidomos", + "fiku", + "i frikësuar", + "i madh", + "motra", + "çeliku", + "diskutuar", + "përpara", + "ngjashme", + "udhëzojë", + "përvojë", + "pikë", + "mollë", + "blerë", + "udhëhequr", + "katran", + "pallto", + "në masë", + "kartë", + "band", + "litar", + "shqip", + "fitore", + "ëndërr", + "mbrëmje", + "kusht", + "ushqim", + "mjet", + "totale", + "themelore", + "erë", + "luginë", + "as", + "dyfishtë", + "vend", + "vazhdojnë", + "bllok", + "tabelë", + "hat", + "shes", + "suksesi", + "Kompania", + "zbres", + "ngjarje", + "i veçantë", + "marrëveshje", + "notoj", + "term", + "kundërta", + "gruaja", + "këpucëve", + "shpatull", + "përhap", + "organizoni", + "kampi", + "trillime", + "pambuku", + "Born", + "përcaktuar", + "kuart", + "nëntë", + "kamion", + "zhurmë", + "nivel", + "shans", + "mblidhen", + "dyqan", + "shtrirje", + "hedh", + "shndrit", + "pronë", + "kolona", + "molekulë", + "zgjidhni", + "gabuar", + "gri", + "përsëritje", + "kërkojnë", + "gjerë", + "përgatisë", + "kripë", + "hundë", + "shumës", + "zemërimi", + "pretendim", + "kontinenti" + ] +} diff --git a/static/languages/spanish_10k.json b/static/languages/spanish_10k.json index e80a51999..56773a8e3 100644 --- a/static/languages/spanish_10k.json +++ b/static/languages/spanish_10k.json @@ -355,7 +355,7 @@ "puesto", "ahí", "propia", - "m", + "manosear", "libro", "igual", "político", @@ -366,7 +366,7 @@ "creo", "tengo", "dios", - "c", + "cecina", "española", "condiciones", "México", @@ -585,7 +585,7 @@ "cine", "salir", "comunicación", - "b", + "balística", "experiencia", "demasiado", "plan", @@ -614,7 +614,7 @@ "color", "actividades", "mesa", - "p", + "bursatil", "decía", "cuyo", "debido", @@ -702,7 +702,7 @@ "ve", "derecha", "ambiente", - "i", + "ruedín", "habrá", "precisamente", "enfermedad", @@ -774,7 +774,7 @@ "carrera", "cierta", "sola", - "PSOE", + "sonda", "lejos", "juez", "características", @@ -900,7 +900,7 @@ "cama", "aun", "presenta", - "PP", + "rifle", "revolución", "busca", "abril", @@ -913,7 +913,7 @@ "pequeña", "armas", "debía", - "ii", + "lubricante", "esfuerzo", "humana", "posibilidades", @@ -1232,7 +1232,7 @@ "afirma", "oficiales", "diálogo", - "vi", + "ví", "respeto", "tratado", "llevaba", @@ -1289,7 +1289,7 @@ "institución", "edificio", "nota", - "franco", + "constelaciones", "jugar", "temerario", "representa", @@ -1339,7 +1339,7 @@ "agentes", "planta", "Venezuela", - "f", + "bellota", "actuación", "iban", "actos", @@ -1366,14 +1366,14 @@ "pagar", "colegio", "sabes", - "l", + "lastre", "personaje", "áreas", "audiencia", "doce", "haga", "periódico", - "v", + "inundación", "distribución", "ausencia", "entrevista", @@ -1663,7 +1663,7 @@ "cuarenta", "encontró", "poesía", - "t", + "tranvía", "planes", "ejercitar", "negocios", @@ -1745,7 +1745,7 @@ "éstas", "saben", "generalmente", - "h", + "hermandad", "dormir", "individuo", "cuerpos", @@ -2033,7 +2033,7 @@ "mezcla", "drogas", "vivienda", - "x", + "mezcal", "escuchar", "coronel", "completamente", @@ -2047,7 +2047,7 @@ "porcentaje", "artes", "vienen", - "iii", + "fisco", "villa", "ah", "Nicaragua", @@ -2130,7 +2130,7 @@ "indios", "raíz", "John", - "xix", + "gozo", "recordó", "absoluto", "agricultura", @@ -2599,7 +2599,7 @@ "cumplimiento", "transición", "campeón", - "xx", + "termostato", "verse", "anteriormente", "defender", @@ -2711,7 +2711,7 @@ "subir", "iniciar", "droga", - "iv", + "tsunami", "asegurar", "entusiasmo", "prestigio", @@ -3215,7 +3215,7 @@ "dama", "líquido", "estarán", - "xviii", + "parmesano", "decidir", "tribunales", "calma", @@ -3410,7 +3410,7 @@ "condena", "daban", "respaldo", - "PNV", + "textil", "sufre", "tristeza", "regionales", @@ -3563,7 +3563,7 @@ "veremos", "domicilio", "escucha", - "UGT", + "autoescuela", "novia", "caras", "reflejo", @@ -3710,7 +3710,7 @@ "grasa", "incluyen", "poseen", - "xvi", + "embrismo", "compuesto", "determinación", "viejas", @@ -3755,7 +3755,7 @@ "escenas", "montaje", "supongo", - "TVE", + "vasto", "abandono", "Irene", "modificación", @@ -3972,7 +3972,7 @@ "retirada", "decirse", "soberanía", - "xvii", + "parlamentarismo", "basado", "Núñez", "anuales", @@ -4063,7 +4063,7 @@ "cálculo", "malas", "propietario", - "puta", + "auriculares", "efectuar", "fuimos", "vivió", @@ -5373,7 +5373,7 @@ "clínico", "entraba", "tele", - "w", + "wolframio", "crímenes", "emisoras", "plantear", @@ -5841,7 +5841,7 @@ "placas", "introduce", "placa", - "vii", + "placenta", "volúmenes", "establecidos", "parámetros", @@ -6167,7 +6167,7 @@ "frenar", "quieras", "salarial", - "xiii", + "fisgar", "catedrático", "hubo", "patente", @@ -6211,7 +6211,7 @@ "afectada", "IVA", "portal", - "xxi", + "pomada", "despertó", "levantado", "rompe", @@ -6401,7 +6401,7 @@ "participado", "tregua", "horizontal", - "che", + "cheque", "divina", "Márquez", "sociología", @@ -6610,7 +6610,7 @@ "grita", "joyas", "mercancías", - "ce", + "ceniza", "ocupaba", "salí", "Barça", @@ -6726,7 +6726,7 @@ "producciones", "pedirle", "trasladado", - "xii", + "metalingüística", "buscado", "romana", "exponer", @@ -6842,7 +6842,7 @@ "generado", "mármol", "tomarse", - "xv", + "marciano", "engaño", "esplendor", "formó", @@ -7166,7 +7166,7 @@ "bs", "medianoche", "moción", - "q", + "quarán", "unió", "mencionada", "encargó", @@ -7473,7 +7473,7 @@ "meterse", "mono", "publicados", - "RTVE", + "futbolista", "matado", "privilegios", "echado", @@ -7723,7 +7723,7 @@ "acude", "aprecia", "girar", - "ja", + "jarrón", "ligado", "fundamentos", "magnífica", @@ -7953,7 +7953,7 @@ "significados", "visuales", "vacíos", - "viii", + "visualización", "bancario", "dominicano", "japoneses", @@ -8288,7 +8288,7 @@ "desconcierto", "descubrimientos", "detectado", - "to", + "toco", "apartados", "frescos", "lata", @@ -8460,7 +8460,7 @@ "reconstruir", "secuencias", "coincidieron", - "Guevara", + "transistor", "antropología", "Benítez", "disparar", @@ -8647,7 +8647,7 @@ "hortalizas", "inventado", "subraya", - "xiv", + "algoritmos", "Cantabria", "chimenea", "perdona", @@ -9095,7 +9095,7 @@ "incumplimiento", "manzano", "trágica", - "xi", + "trucha", "campesina", "contenía", "Liaño", @@ -9318,7 +9318,7 @@ "condado", "dormida", "explorar", - "ix", + "internacionalización", "literarias", "Palencia", "activamente", @@ -9500,7 +9500,7 @@ "arrastra", "ciclismo", "conoces", - "du", + "dudoso", "realizador", "velo", "cobran", @@ -9752,7 +9752,7 @@ "irregulares", "narcotraficantes", "salva", - "Stalin", + "toalla", "desarrolladas", "incluía", "maduro", diff --git a/static/languages/spanish_1k.json b/static/languages/spanish_1k.json index 651f4f539..a47b31e92 100644 --- a/static/languages/spanish_1k.json +++ b/static/languages/spanish_1k.json @@ -288,7 +288,7 @@ "tú", "derecho", "verdad", - "maría", + "María", "unidos", "podría", "sería", @@ -566,7 +566,7 @@ "importancia", "cuales", "contrario", - "manuel", + "Manuel", "García", "fuerte", "sol", @@ -683,7 +683,7 @@ "viene", "permite", "análisis", - "argentina", + "Argentina", "acto", "hechos", "tiempos", @@ -774,7 +774,7 @@ "carrera", "cierta", "sola", - "PSOE", + "rincón", "lejos", "juez", "características", @@ -832,12 +832,12 @@ "llamado", "técnica", "título", - "s", + "electricidad", "principios", "octubre", "volvió", "período", - "g", + "gastrópodo", "encontrar", "democracia", "aumento", @@ -900,7 +900,7 @@ "cama", "aun", "presenta", - "PP", + "pomada", "revolución", "busca", "abril", @@ -989,7 +989,7 @@ "líder", "hospital", "diversas", - "rafael", + "Rafael", "vuelve", "destino", "torno", diff --git a/static/privacy-policy.html b/static/privacy-policy.html index ac43a58f5..20f4ac378 100644 --- a/static/privacy-policy.html +++ b/static/privacy-policy.html @@ -149,7 +149,6 @@