Compare commits

..

No commits in common. "8dd613025d926bc6c343986b0d522b116e53641f" and "08c9c9ebd6201b54dd0ddaae8fa9e7649ab2927c" have entirely different histories.

5 changed files with 24 additions and 35 deletions

View File

@ -2,7 +2,7 @@ name: Update menicka
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
- cron: '0 9 * * *' # every day at 9:00 - cron: '0 9 * * 1' # every monday at 9:00
jobs: jobs:
update-rss: update-rss:

View File

@ -69,16 +69,14 @@ Konsolidace obědových meníček pro vybírání obědů v práci.
- Polévka: Čočková s kořenovou zeleninou (9) - Polévka: Čočková s kořenovou zeleninou (9)
- Hlavní chod: Seitan steak s pečeným bramborem a smetanovou omáčkou s liškami (1,6) (pečené tofu pro bezlepkovou verzi) - Hlavní chod: Seitan steak s pečeným bramborem a smetanovou omáčkou s liškami (1,6) (pečené tofu pro bezlepkovou verzi)
## čtvrtek ## čtvrtek
- [🏭 Jídelna Čakovice](https://www.menicka.cz/api/iframe/?id=8542&continuous=true): - [🏭 Jídelna Čakovice](https://www.menicka.cz/api/iframe/?id=8542&continuous=true):
- Hovězí vývar s masem a celestýnskými nudlemi 1379 - Hovězí vývar s masem a celestýnskými nudlemi 1379
- Rizoto s mořskými plody 24679101214 - Rizoto s mořskými plody 24679101214
- Kuřecí stripsy v křupavém kabátku, vařený brambor, tatarská omáčka 137910 - Kuřecí stripsy v křupavém kabátku, vařený brambor, tatarská omáčka 137910
- Grilovaný hermelín na zeleninovém salátu s brusinkovou majonézou, slaninový chips, croissant 13710
- Těstoviny s houbami a omáčkou z mascarpone, Grana Padano 1379 - Těstoviny s houbami a omáčkou z mascarpone, Grana Padano 1379
- Uzená krkovice, špenát, bramborový knedlík 1379 - Uzená krkovice, špenát, bramborový knedlík 1379
- Zapečené šunkafleky, beraní rohy 137 - Opečená jitrnice a jelítko, mačkané brambory, kysané zelí 137910
- [🏪 Globus](https://www.globus.cz/praha-cakovice/sluzby-a-produkty/restaurace#klasicke-menu): - [🏪 Globus](https://www.globus.cz/praha-cakovice/sluzby-a-produkty/restaurace#klasicke-menu):
- Hovězí vývar s masem a zeleninou (9) - Hovězí vývar s masem a zeleninou (9)
- Kulajda s bramborami (1,1a,3,7,9) - Kulajda s bramborami (1,1a,3,7,9)
@ -95,10 +93,9 @@ Konsolidace obědových meníček pro vybírání obědů v práci.
## pátek ## pátek
- [🏭 Jídelna Čakovice](https://www.menicka.cz/api/iframe/?id=8542&continuous=true): - [🏭 Jídelna Čakovice](https://www.menicka.cz/api/iframe/?id=8542&continuous=true):
- Drštková polévka 179 - Drštková polévka 179
- Rizoto s mořskými plody a sýrem grana padano 24679101214 - Grilovaný hermelín v anglické slanině, hranolky, brusinková majonéza 3710
- Kuřecí Cordon Bleu, mačkané brambory, tatarská omáčka 13710 - Kuřecí Cordon Bleu, mačkané brambory, tatarská omáčka 13710
- Svíčková na smetaně, houskový knedlík, brusinkový terč 137910 - Svíčková na smetaně, houskový knedlík, brusinkový terč 137910
- Zeleninový salát s cizrnou a grilovaným kuřecím masem, sýrový dresink 3710
- Francouzské brambory s uzeným masem, kyselá okurka 37910 - Francouzské brambory s uzeným masem, kyselá okurka 37910
- Špagety pomodoro s bazalkou, Grana Padano 1379 - Špagety pomodoro s bazalkou, Grana Padano 1379
- [🏪 Globus](https://www.globus.cz/praha-cakovice/sluzby-a-produkty/restaurace#klasicke-menu): - [🏪 Globus](https://www.globus.cz/praha-cakovice/sluzby-a-produkty/restaurace#klasicke-menu):

24
cli.mjs
View File

@ -1,41 +1,33 @@
#!/usr/bin/env -S npx nodejsscript #!/usr/bin/env -S npx nodejsscript
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */ /* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
const { version, description }= s.cat("package.json").xargs(JSON.parse); const { version, description }= s.cat("package.json").xargs(JSON.parse);
const today= [ 6, 0, 1, 2, 3, 4, 5 ][new Date().getDay()];
$.api() $.api()
.version(version) .version(version)
.describe(description) .describe(description)
.command("pull", "Update article list") .command("pull", "Update article list")
.option("--git", "Update git repository") .option("--git", "Update git repository")
.option("--dry-run", "Dry run") .action(async function pull({ git: is_git= false }){
.action(async function pull({ git: is_git= false, ["dry-run"]: dryRun= false, ..._ }= {}){
if(dryRun) is_git= false;
if(is_git) s.run`git pull --rebase`; if(is_git) s.run`git pull --rebase`;
const menicka= await Promise.allSettled([ menickoCukrovarka(), menickoGlobus(), menickoMamafoodbistro() ]) const menicka= await Promise.allSettled([ menickoCukrovarka(), menickoGlobus(), menickoMamafoodbistro() ])
.then(results=> results.filter(p=> p.status!=="rejected").map(p=> p.value)); .then(results=> results.filter(p=> p.status!=="rejected").map(p=> p.value));
const days= [ "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle" ]; const days= [ "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle" ];
const out_head= description+"\n\n" + days.map((v)=> `[${v}](#${v})`).join(" · "); // anchors for days let out= description+"\n\n";
let out= ""; out+= days.map((v)=> `[${v}](#${v})`).join(" · "); // anchors for days
for(let i= today; i < days.length; i++){ // menicka for(const day of days){ // menicka
const day= days[i];
out+= `\n\n## ${day}\n`; out+= `\n\n## ${day}\n`;
out+= menicka.map(dayToMd(day)).join("\n"); out+= menicka.map(dayToMd(day)).join("\n");
} }
const gen= [ "<!-- generated -->", "<!-- /generated -->" ]; const gen= [ "<!-- generated -->", "<!-- /generated -->" ];
const target= "README.md"; const target= "README.md";
const readme= s.cat(target); const readme= s.cat(target);
const readme_before= readme.indexOf(gen[0])-1;
const readme_today= today===0 ? -1 : readme.indexOf(`## ${days[today]}`, readme_before)-2;
out= [ out= [
readme.slice(0, readme_before), readme.slice(0, readme.indexOf(gen[0])-1),
readme_today < 0 ? gen[0]+out_head : readme.slice(readme_before+1, readme_today), gen[0], out.replace(/(\*)/g, "\\$1"), gen[1],
out.replace(/(\*)/g, "\\$1"), readme.slice(readme.indexOf("\n", readme.indexOf(gen[1]))+1)
gen[1], readme.slice(readme.indexOf("\n", readme.indexOf(gen[1]))+1)
].join("\n"); ].join("\n");
if(dryRun) echo(out); s.echo(out).to(target);
else s.echo(out).to(target);
if(is_git) gitCommit([ target ], "pull"); if(is_git) gitCommit([ target ], "pull");
$.exit(0); $.exit(0);

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "menicka-cron", "name": "menicka-cron",
"version": "1.1.0", "version": "1.0.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "menicka-cron", "name": "menicka-cron",
"version": "1.1.0", "version": "1.0.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"jsdom": "~24.1" "jsdom": "~24.1"

View File

@ -1,6 +1,6 @@
{ {
"name": "menicka-cron", "name": "menicka-cron",
"version": "1.1.0", "version": "1.0.3",
"description": "Konsolidace obědových meníček pro vybírání obědů v práci.", "description": "Konsolidace obědových meníček pro vybírání obědů v práci.",
"bin": "cli.mjs", "bin": "cli.mjs",
"scripts": { "scripts": {