ma rss: deploy ratt job
This commit is contained in:
parent
bdd36774f5
commit
5187d0ac20
59
makefu/2configs/deployment/rss/ebk.yml
Normal file
59
makefu/2configs/deployment/rss/ebk.yml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
regex: https://www.ebay\-kleinanzeigen.de/s\-.*
|
||||||
|
selectors:
|
||||||
|
httpsettings:
|
||||||
|
cookie: {}
|
||||||
|
header: {}
|
||||||
|
useragent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
|
||||||
|
Chrome/90.0.4430.72 Safari/537.36
|
||||||
|
insecure: false
|
||||||
|
feed:
|
||||||
|
title: title
|
||||||
|
authorname: ""
|
||||||
|
authoremail: ""
|
||||||
|
item:
|
||||||
|
container: ul[id='srchrslt-adtable'] li[class='ad-listitem lazyload-item ']
|
||||||
|
title: |
|
||||||
|
title = sel:find("h2.text-module-begin"):first():text():gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
print(title)
|
||||||
|
link: |
|
||||||
|
link = sel:find("a"):first():attr("href")
|
||||||
|
print("https://www.ebay-kleinanzeigen.de" .. link)
|
||||||
|
created: |-
|
||||||
|
created = ""
|
||||||
|
sel:find("div.aditem-main--top--right"):each(function(i, s)
|
||||||
|
created = s:text():gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
end)
|
||||||
|
if created:match("Heute") then
|
||||||
|
time = created:gsub("^.*,", "")
|
||||||
|
print(os.date("%d.%m.%Y") .. time .. " CET")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if created:match("Gestern") then
|
||||||
|
time = created:gsub("^.*,", "")
|
||||||
|
print(os.date("%d.%m.%Y", os.time()-24*60*60) .. time .. " CET")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if created:match("\.") then
|
||||||
|
print(created .. " 00:00 CET")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
createdformat: 02.01.2006 15:04 MST
|
||||||
|
description: |-
|
||||||
|
description = sel:find(".aditem-main--middle"):html()
|
||||||
|
place = sel:find(".aditem-main--top--left"):html()
|
||||||
|
print(description .. place)
|
||||||
|
content: ""
|
||||||
|
image: |
|
||||||
|
img = sel:find("div.imagebox"):first():attr("data-imgsrc")
|
||||||
|
if img ~= "" then
|
||||||
|
-- prepend host if needed
|
||||||
|
if not(img:match("https*:\/\/.*")) then
|
||||||
|
img = "https://www.ebay-kleinanzeigen.de" .. img
|
||||||
|
end
|
||||||
|
print(img)
|
||||||
|
end
|
||||||
|
nextpage: |
|
||||||
|
nextpage = sel:find("link[rel=next]"):attr("href")
|
||||||
|
print("https://www.ebay-kleinanzeigen.de" .. nextpage)
|
||||||
|
nextpagecount: 5
|
||||||
|
sort: ""
|
28
makefu/2configs/deployment/rss/ratt-hourly.sh
Executable file
28
makefu/2configs/deployment/rss/ratt-hourly.sh
Executable file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
URLS=${1?must provide URLS file}
|
||||||
|
OUTFILE=${2:-all.xml}
|
||||||
|
|
||||||
|
echo "init, writing to $OUTFILE"
|
||||||
|
|
||||||
|
cat > "$OUTFILE" <<EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>makefu Ebay Kleinanzeigen</title>
|
||||||
|
<link>https://www.ebay-kleinanzeigen.de/</link>
|
||||||
|
<description>Feed for all kleinanzeigen</description>
|
||||||
|
<pubDate>$(date '+%a, %d %b %Y %H:%M:%S %z')</pubDate>
|
||||||
|
EOF
|
||||||
|
echo "looping through $URLS"
|
||||||
|
cat "$URLS" | while read line;do
|
||||||
|
echo "fetching $line"
|
||||||
|
ratt auto "$line" | \
|
||||||
|
xmlstarlet sel -t -c "//item" >> "$OUTFILE" || :
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "close"
|
||||||
|
cat >> "$OUTFILE" <<EOF
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
|
EOF
|
26
makefu/2configs/deployment/rss/ratt.nix
Normal file
26
makefu/2configs/deployment/rss/ratt.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
fqdn = "rss.euer.krebsco.de";
|
||||||
|
ratt-path = "/var/lib/ratt/";
|
||||||
|
out-path = "${ratt-path}/all.xml";
|
||||||
|
in {
|
||||||
|
systemd.tmpfiles.rules = ["d ${ratt-path} 0750 nginx nginx - -" ];
|
||||||
|
systemd.services.run-ratt = {
|
||||||
|
enable = true;
|
||||||
|
path = with pkgs; [ "/nix/store/vhmzblnaav2lp4lwqdgm13l55qlm79mk-ratt-unstable-2022-01-11" xmlstarlet ];
|
||||||
|
script = builtins.readFile ./ratt-hourly.sh;
|
||||||
|
scriptArgs = "${./urls} ${out-path}";
|
||||||
|
|
||||||
|
preStart = "install -v -m750 ${./ebk.yml} ${ratt-path}/ebk.yml"; # ratt requires the config file in the cwd
|
||||||
|
serviceConfig.User = "nginx";
|
||||||
|
serviceConfig.WorkingDirectory= ratt-path;
|
||||||
|
startAt = "00/3:07"; # every 3 hours, fetch latest
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."${fqdn}" = {
|
||||||
|
locations."=/ratt/all.xml" = {
|
||||||
|
alias = out-path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
let
|
let
|
||||||
fqdn = "rss.euer.krebsco.de";
|
fqdn = "rss.euer.krebsco.de";
|
||||||
|
ratt-path = "/var/lib/ratt/";
|
||||||
in {
|
in {
|
||||||
|
systemd.tmpfiles.rules = ["d ${ratt-path} 0750 nginx nginx - -" ];
|
||||||
services.tt-rss = {
|
services.tt-rss = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHost = fqdn;
|
virtualHost = fqdn;
|
||||||
|
@ -19,6 +21,10 @@ in {
|
||||||
services.nginx.virtualHosts."${fqdn}" = {
|
services.nginx.virtualHosts."${fqdn}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
|
locations."/ratt/" = {
|
||||||
|
alias = ratt-path;
|
||||||
|
extraConfig = "autoindex on;";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
5
makefu/2configs/deployment/rss/urls
Normal file
5
makefu/2configs/deployment/rss/urls
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
https://www.ebay-kleinanzeigen.de/s-muehlhausen/preis:0:45/duplo-eisenbahn/k0l9313r5
|
||||||
|
https://www.ebay-kleinanzeigen.de/s-heimwerken/nein/muehlhausen/bohrmaschine/k0c84l9313r5+heimwerken.versand_s:nein
|
||||||
|
https://www.ebay-kleinanzeigen.de/s-stuttgart/zigbee/k0l9280
|
||||||
|
https://www.ebay-kleinanzeigen.de/s-stuttgart/ikea-tradfri-fernbedienung/k0l9280
|
||||||
|
https://www.ebay-kleinanzeigen.de/s-70378/d%C3%B6rrautomat/k0l9334r5
|
Loading…
Reference in a new issue