Skip to content
Snippets Groups Projects
Commit 7e3719aa authored by Janne's avatar Janne
Browse files

It's ready now!

parent a934c803
No related branches found
No related tags found
No related merge requests found
const alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'å', 'ä', 'ö']
const consonants = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z']
const conjunctions = [" ja ", " sekä ", " että ", " eli ", " tai ", " joko ", " vai ", " mutta ", " vaan ", " siksi ", " siis ", " sillä ", " näet ", " nimittäin ", " jotta ", " koska ", " kun ", " jos ", " vaikka ", " kuin ", " kunnes ", " jopa "]
const beVerbs = [" olen ", " olet ", " on ", " olemme ", " olette ", " ovat ", " ollaan ", " olla "]
counter = 0
async function getAllPossibilities(data){
let text = data.toString().toLowerCase()
let arrayOfPossibilities = []
arrayOfPossibilities.push({'text': text, 'isFinnish': await onkoSuomea(text), 'isOrig': true, 'shiftState': 0, 'id': counter})
counter++
for(let i=1; i<29; i++){
let shiftedText = await shiftLeft(text, i)
let textObject = {
'text': shiftedText,
'isFinnish': await onkoSuomea(shiftedText),
'isOrig': false,
'shiftState': i,
'id': counter
}
counter++
arrayOfPossibilities.push(textObject)
}
return arrayOfPossibilities
}
async function shiftLeft(text, shiftAmount){
let uusi = "";
for(let i=0; i<text.length; i++){
let c = text[i];
if(c==='.' || c===' '){
uusi = uusi + c;
}
else{
uusi = uusi + alphabet[await shiftHelper(alphabet.indexOf(c), shiftAmount)];
}
}
return uusi;
}
async function shiftHelper(charLoc, shiftAmount){
let result = charLoc - shiftAmount;
//console.log("result: "+result);
if(result>=0){
return result;
}
else{
return 29 + result;
}
}
async function onkoSuomea(text){
/*let previousChar = '0'
let previousChar2 = '0'
for(let i=0; i<text.length; i++){
let currentChar = text.charAt(i);
//console.log(currentChar)
//console.log("Chars: "+currentChar+previousChar+previousChar2);
if(previousChar === '0' && previousChar2 === '0'){
previousChar = currentChar;
}
else if(previousChar !== '0' && previousChar2 === '0'){
previousChar2 = previousChar;
previousChar = currentChar;
}
else{
if(await check3Consonants(currentChar, previousChar, previousChar2)){
console.log("KOLME peräkkäistä konsonanttia "+ currentChar,previousChar, previousChar2)
return false;
}
previousChar2 = previousChar;
previousChar = currentChar;
}
}*/
if(await checkConjunctions(text) || await checkBeVerbs(text)){
return true
}
//console.log("Päästään loppuun JEEEEE")
return false;
}
async function checkConjunctions(text){
for(let s of conjunctions){
if(text.includes(s)){
//console.log(s);
return true;
}
}
}
async function checkBeVerbs(text){
for(let s of beVerbs){
if(text.includes(s)){
//console.log(s);
return true;
}
}
}
async function check3Consonants( a, b, c){
//console.log("3 consonants")
//console.log(consonants.includes(a, b, c))
if(await consonants.includes(a, b, c)){
return true;
}
else{
return false;
}
}
module.exports = {
getAllPossibilities
}
\ No newline at end of file
...@@ -2,34 +2,127 @@ const axios = require('axios'); ...@@ -2,34 +2,127 @@ const axios = require('axios');
const express = require('express') const express = require('express')
const cors = require('cors') const cors = require('cors')
const app = express(); const app = express();
const HelperFunctions = require('./HelperFunctions')
app.use(cors()) app.use(cors())
let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJidWxsc2hpdCI6ImJ1bGxzaGl0IiwiaWF0IjoxNTcxMTQ0ODc3fQ.2hTbepbeUpxDGSATKybnKpxOcmLEbt2oaRDu8B129xs" let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJidWxsc2hpdCI6ImJ1bGxzaGl0IiwiaWF0IjoxNTcxMTQ0ODc3fQ.2hTbepbeUpxDGSATKybnKpxOcmLEbt2oaRDu8B129xs"
let data let data
let dataArray
let testArray = "Jeejee moimoi kaikki ja tässä on testi lause."
let kaikki = []
async function getData() { async function getData() {
const request = await axios.get('https://koodihaaste-api.solidabis.com/bullshit', { const request = await axios.get('https://koodihaaste-api.solidabis.com/bullshit', {
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Authorization': 'Bearer '+token }}) 'Authorization': 'Bearer '+token
}})
dataArray = JSON.parse(JSON.stringify(request.data.bullshits))
data = request.data data = request.data
return data return data
} }
app.get('/messages', (req, res) => { async function modifyData(){
if(data == undefined){ if(dataArray == undefined){
await getData()
}
let messageArray = await dataArray.map(element => {
return element.message
})
//console.log(messageArray[0])
try{
//Kaikki sisältää listan listoja, joissa alilistana on yksi lause sen kaikkine caesar salaus vaihtoehtoineen
for(let message of messageArray){
let list = await HelperFunctions.getAllPossibilities(message)
let truth = false
list.map(element =>{
if(element.isFinnish){
truth = true
}
})
kaikki.push({
'containsFinnish': truth,
'list': list
})
}
return kaikki
}catch(e){
console.log(e)
return
}
//console.log("Lauseiden lkm: "+counter)
}
app.get('/messages/getAll', (req, res) => {
if(kaikki.length == 0){
console.log("Haetaan data") console.log("Haetaan data")
getData().then(response => { modifyData().then(response => {
res.send(response) res.send(response)
}) })
} }
else{ else{
console.log("Data löytyi") console.log("Data löytyi")
res.send(data) res.send(kaikki)
} }
}); });
/*app.get('/messages/getFinnish', (req, res) => {
if(kaikki.length == 0){
console.log("Haetaan data")
modifyData().then(response => {
res.send(response)
})
}
else{
console.log("Data löytyi")
res.send(kaikki)
}
});
app.get('/messages/getOther', (req, res) => {
if(kaikki.length == 0){
console.log("Haetaan data")
modifyData().then(response => {
res.send(response)
})
}
else{
console.log("Data löytyi")
res.send(kaikki)
}
});*/
/*app.get('/prepareWords', (req, res) => {
if(dataArray == undefined){
console.log("Haetaan data")
getData().then(response => {
modifyData()
res.send("onnistui")
})
}
else if(kaikki != undefined){
console.log("kaikki löytyi")
res.send(kaikki)
}
});
app.get('/getWords', (req, res) => {
if(suomenKieliset.length !== 0){
res.send(suomenKieliset)
}
else{
res.send("sanoja ei löytynyt")
}
})*/
app.listen(8000, () => { app.listen(8000, () => {
console.log('Example app listening on port 8000!') console.log('Example app listening on port 8000!')
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment