12 Commits
2.2 ... 2.3.1

Author SHA1 Message Date
Daniel Løvbrøtte Olsen
f27347d6ec Merge branch 'develop' into 'master'
Develop

See merge request Dandellion/matrix-wug!14
2019-06-24 23:58:33 +00:00
Daniel Løvbrøtte Olsen
e34de2f569 update @types/js-yaml 2019-06-25 01:57:52 +02:00
Daniel Løvbrøtte Olsen
002b941ee7 update version number 2019-06-25 01:56:00 +02:00
Daniel Løvbrøtte Olsen
cea04d0e2a upgrade js-yaml 2019-06-25 01:53:14 +02:00
Daniel Løvbrøtte Olsen
6ac0b87e0d Merge branch 'develop' into 'master'
2.3

See merge request Dandellion/matrix-wug!13
2019-03-15 13:12:14 +00:00
Daniel Løvbrøtte Olsen
81a205f781 Add navajo 2019-03-15 01:16:51 +01:00
Daniel Løvbrøtte Olsen
3268701820 Merge branch 'develop' into 'master'
2.2.1

See merge request Dandellion/matrix-wug!12
2019-03-14 23:01:09 +00:00
Daniel Løvbrøtte Olsen
75d4d41744 Merge branch 'develop' of https://git.dodsorf.as/Dandellion/matrix-wug into develop 2019-03-14 23:36:59 +01:00
Daniel Løvbrøtte Olsen
bb4b7a6534 allow usage of ' for . in cherokee 2019-03-14 23:32:30 +01:00
Daniel Løvbrøtte Olsen
614287c31b Update .gitlab-ci.yml 2019-03-07 01:52:58 +00:00
Daniel Løvbrøtte Olsen
919ee380d2 Update dependencies 2019-03-07 02:30:51 +01:00
Daniel Løvbrøtte Olsen
6f8f06d5e2 move dictionaries to folder 2019-03-07 02:23:12 +01:00
12 changed files with 543 additions and 2408 deletions

View File

@@ -1,6 +1,21 @@
stages:
- build
- deploy
image: node:10-slim
build:
stage: build
script:
- npm install
- npm build
- npm run build
deploy:
stage: deploy
script:
- echo "Deploy to dodsorf.as"
environment:
name: wug dodsorf.as
only:
- master

View File

@@ -1,4 +1,4 @@
const version = "2.2.0";
const version = "2.3.1";
import x2i from "./x2i";
import { existsSync } from "fs";
@@ -29,6 +29,7 @@ async function handle(roomId, event) {
if (event.content.body === "!xik") {xik(roomId); return;};
if (event.content.body === "!xpie") {xpie(roomId); return;};
if (event.content.body === "!xchr") {xchr(roomId); return;};
if (event.content.body === "!xnav") {xnav(roomId); return;};
if (event.content.body === "!xdebug") {debug(roomId); return;};
console.log("Trying to convert the message!");
@@ -50,6 +51,7 @@ p - Proto-Indo-European Notation (see !xpie)
i - Inuktitut Syllabics - https://en.wikipedia.org/wiki/Inuktitut_syllabics
ik - Iñupiatun Orthographies (see !xik)
chr - Cherokee (see !xchr) - https://en.wikipedia.org/wiki/Cherokee_syllabary
nav - Navajo (see !xnav)
Find my source at https://github.com/Dali99/matrix-wug
@@ -91,7 +93,7 @@ Thanks to Tuugaalikkuluk for the encoding`;
function xchr(roomId) {
var message = `I'm sadly not smart enough to know which syllable to use in certain situations.
That means you have to help me out a little.
Write the wanted syllables down, but separate them by a dot (.)
Write the wanted syllables down, but separate them by a dot (.) or an apostrophe (')
Thanks to Tuugaalikkuluk for the encoding
@@ -101,6 +103,22 @@ chr/tsa.la.gi ga.wo.ni.hi.s.di/ - ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ`;
client.sendNotice(roomId, message);
}
function xnav(roomId) {
var message = `My navajo encoding is as follows:
Caron after a vowel gives it an acute accent: o^ → ó, A^ → Á
At sign after a vowel gives it an ogonek: a@ → ą, E@ → Ę
Percentage sign after a vowel gives it both an ogonek and an acute accent: a% → ą́, I% → Į́ and after an l, it makes ł: l% → ł
You can also "stack the symbols" for an ogonek and an accute accent: (a^@, a@^) → ą́
Single quotation mark is converted to the glottal stop/ejective mark ()
For a plain quotation mark, you can type '^
Thanks to Tuugaalikkuluk for the encoding`;
client.sendNotice(roomId, message);
}
async function debug(roomId) {
var message = `Hi my name is ${await myself}, and I want to help you debug me!
I run version ${version} 💝 and currently reside in ${roomId}`;

2592
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,13 +11,11 @@
"license": "ISC",
"dependencies": {
"matrix-bot-sdk": "^0.3.2",
"@types/js-yaml": "^3.11.2",
"@types/js-yaml": "^3.12.1",
"@types/node": "^10.12.11",
"@types/xregexp": "^3.0.29",
"js-yaml": "^3.12.0",
"ts-node": "^7.0.1",
"js-yaml": "^3.13.1",
"typescript": "^3.2.1",
"xregexp": "^4.2.0",
"nodemon": "^1.18.7"
"xregexp": "^4.2.0"
}
}

View File

@@ -23,37 +23,37 @@ export function convert(input: string)
else if (i==1) {
if (rom[0].toLowerCase()=='a') {
c=c+'';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2)
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2)
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='e') {
c=c+'';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='i') {
c=c+'';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='o') {
c=c+'Ꭳ';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='u') {
c=c+'Ꭴ';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='v') {
c=c+'';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else if (rom[0].toLowerCase()=='s') {
c=c+'Ꮝ';
if(rom[1]=="."&& isAlpha(rom[2])) rom=rom.slice(2);
if((rom[1] == "." || rom[1] == "'")&& isAlpha(rom[2])) rom=rom.slice(2);
else rom=rom.slice(1);
}
else {
@@ -78,7 +78,7 @@ export function convert(input: string)
};
if(flag) {
c=c+syl[j][k];
if(rom[2]=="."&& isAlpha(rom[3])) rom=rom.slice(3);
if((rom[2] == "." || rom[2] == "'")&& isAlpha(rom[3])) rom=rom.slice(3);
else rom=rom.slice(2);
}
else {
@@ -103,17 +103,17 @@ export function convert(input: string)
};
if(flag) {
c=c+syl[j][k];
if(rom[3]=="." && isAlpha(rom[4])) rom=rom.slice(4);
if((rom[3] == "." || rom[3] == "'") && isAlpha(rom[4])) rom=rom.slice(4);
else rom=rom.slice(3);
}
else if (rom.slice(0,3).toLowerCase()=="nah") {
c=c+"";
if(rom[3]=="." && isAlpha(rom[4])) rom=rom.slice(4);
if((rom[3] == "." || rom[3] == "'") && isAlpha(rom[4])) rom=rom.slice(4);
else rom=rom.slice(3);
}
else if (rom.slice(0,3).toLowerCase()=="hna") {
c=c+"Ꮏ";
if(rom[3]=="." && isAlpha(rom[4])) rom=rom.slice(4);
if((rom[3] == "." || rom[3] == "'") && isAlpha(rom[4])) rom=rom.slice(4);
else rom=rom.slice(3);
}
else {

273
x2i/dictionaries/nav.ts Normal file
View File

@@ -0,0 +1,273 @@
export function convert(input: string)
{
var c=" ";
var rom=input+" ";
var flag=0;
while(rom.length > 1) {
if(rom[1]=='^') {
if(rom.length>=2 && rom[2]=='@') {
if(rom[0]=='a') {
c=c+'ą́';
flag=1;
}
else if(rom[0]=='A') {
c=c+'Ą́';
flag=1;
}
else if(rom[0]=='e') {
c=c+'ę́';
flag=1;
}
else if(rom[0]=='E') {
c=c+'Ę́';
flag=1;
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
if(flag) {
rom=rom.slice(3)
flag=0
continue
}
}
else {
if(rom[0]=='a') {
c=c+'á'
flag=1
}
else if(rom[0]=='A') {
c=c+'Á'
flag=1
}
else if(rom[0]=='e') {
c=c+'é'
flag=1
}
else if(rom[0]=='E') {
c=c+'É'
flag=1
}
else if(rom[0]=='i') {
c=c+'í'
flag=1
}
else if(rom[0]=='I') {
c=c+'Í'
flag=1
}
else if(rom[0]=='o') {
c=c+'ó'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ó'
flag=1
}
else if(rom[0]=='u') {
c=c+'ú'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ú'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
}
if(rom[1]=='@') {
if(rom.length>=2 && rom[2]=='^') {
if(rom[0]=='a') {
c=c+'ą́'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą́'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę́'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę́'
flag=1
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
if(flag) {
rom=rom.slice(3)
flag=0
continue
}
}
else {
if(rom[0]=='a') {
c=c+'ą'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę'
flag=1
}
else if(rom[0]=='i') {
c=c+'į'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
}
if(rom[1]=='%') {
if(rom[0]=='a') {
c=c+'ą́'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą́'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę́'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę́'
flag=1
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
else if(rom[0]=='l') {
c=c+'ł'
flag=1
}
else if(rom[0]=='L') {
c=c+'Ł'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
if(rom[0]=="'") {
if(rom[1]!='^') {
c=c+''
rom=rom.slice(1)
continue
}
if(rom[1]=='^') {
c=c+'\''
rom=rom.slice(2)
continue
}
}
if(rom[0]=='#') {
break
}
c=c+rom[0]
rom=rom.slice(1)
}
return c;
}

View File

@@ -38,30 +38,35 @@ const regex = OuterXRegExp(
const defaultMatchAction = (left: string, match: string, right: string) => left + match + right;
const defaultMatchFunction = (match: string, keys: ([RegExp, string | ((m: {[key: string]: string;}) => string), string][])) => OuterXRegExp.replaceEach(match, keys as (RegExp | string)[][])
import * as chr from "./chr";
import * as chr from "./dictionaries/chr";
import * as nav from "./dictionaries/nav";
const matchType: { [key: string]: IMatchInstructions } = {
chr: {
join: (_, match) => `- ${match}`,
matchFunction: chr.convert,
},
nav: {
join: (_, match) => `- ${match}`,
matchFunction: nav.convert,
},
ik: {
join: (_, match) => `- ${match}`,
keys: readKeys("./x2i/ik-keys.yaml"),
keys: readKeys("./x2i/dictionaries/ik-keys.yaml"),
},
p: {
join: (_, match) => `*${match}`,
keys: readKeys("./x2i/apie-keys.yaml"),
keys: readKeys("./x2i/dictionaries/apie-keys.yaml"),
},
x: {
keys: readKeys("./x2i/x2i-keys.yaml"),
keys: readKeys("./x2i/dictionaries/x2i-keys.yaml"),
},
z: {
keys: readKeys("./x2i/z2i-keys.yaml"),
keys: readKeys("./x2i/dictionaries/z2i-keys.yaml"),
},
i: {
join: (_, match) => `- ${match}`,
keys: readKeys("./x2i/i-keys.yaml"),
keys: readKeys("./x2i/dictionaries/i-keys.yaml"),
},
};