From: Nicolas Boisselier Date: Tue, 9 Jan 2018 14:07:23 +0000 (+0000) Subject: lib/postgres/useragent.sql X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=a4d4a96a35be0c39d76fc00eb6ec560b125e5536;p=nb.git lib/postgres/useragent.sql --- diff --git a/etc/profile.d/net.sh b/etc/profile.d/net.sh index a9afe80b..812c689d 100644 --- a/etc/profile.d/net.sh +++ b/etc/profile.d/net.sh @@ -42,5 +42,5 @@ html2pdf() { } xml2csv() { - xsltproc lib/xslt/xml2csv.xslt $@ + xsltproc $NB_ROOT/lib/xslt/xml2csv.xslt $@ } diff --git a/lib/postgres/useragent.sql b/lib/postgres/useragent.sql index 3322d9c8..713b8bae 100644 --- a/lib/postgres/useragent.sql +++ b/lib/postgres/useragent.sql @@ -1,18 +1,8 @@ -CREATE TEMPORARY TABLE _useragent ( - id INT PRIMARY KEY, - string VARCHAR(500), - description VARCHAR(2000), - type VARCHAR(20), - comment VARCHAR(100), - link1 VARCHAR(1000), - link2 VARCHAR(1000) -); - DROP TABLE IF EXISTS useragent; CREATE TABLE IF NOT EXISTS useragent ( string VARCHAR(500), description VARCHAR(2000), - comment VARCHAR(100), + comment VARCHAR(200), link VARCHAR(1000), is_browser BOOLEAN, is_link BOOLEAN, @@ -22,18 +12,28 @@ CREATE TABLE IF NOT EXISTS useragent ( is_spam BOOLEAN ); -CREATE INDEX useragent_string_idx ON `useragent` (string); -CREATE INDEX useragent_comment_idx ON `useragent` (comment); -CREATE INDEX useragent_is_browser_idx ON `useragent` (is_browser); -CREATE INDEX useragent_is_link_idx ON `useragent` (is_link); -CREATE INDEX useragent_is_download_idx ON `useragent` (is_download); -CREATE INDEX useragent_is_proxy_idx ON `useragent` (is_proxy); -CREATE INDEX useragent_is_robot_idx ON `useragent` (is_robot); -CREATE INDEX useragent_is_spam_idx ON `useragent` (is_spam); +CREATE INDEX IF NOT EXISTS useragent_string_idx ON useragent (string); +CREATE INDEX IF NOT EXISTS useragent_comment_idx ON useragent (comment); +CREATE INDEX IF NOT EXISTS useragent_is_browser_idx ON useragent (is_browser); +CREATE INDEX IF NOT EXISTS useragent_is_link_idx ON useragent (is_link); +CREATE INDEX IF NOT EXISTS useragent_is_download_idx ON useragent (is_download); +CREATE INDEX IF NOT EXISTS useragent_is_proxy_idx ON useragent (is_proxy); +CREATE INDEX IF NOT EXISTS useragent_is_robot_idx ON useragent (is_robot); +CREATE INDEX IF NOT EXISTS useragent_is_spam_idx ON useragent (is_spam); BEGIN TRANSACTION; -DELETE FROM useragent; -COPY useragent FROM PROGRAM 'xml2csv http://www.user-agents.org/allagents.xml \ +CREATE TEMPORARY TABLE _useragent ( + id VARCHAR(20) PRIMARY KEY, + string VARCHAR(500), + description VARCHAR(2000), + type VARCHAR(80), + comment VARCHAR(200), + link1 VARCHAR(1000), + link2 VARCHAR(1000) +); + +COPY _useragent FROM PROGRAM 'bash --login -c "xml2csv http://www.user-agents.org/allagents.xml" \ +| sed "s/\\\\/\\\\\\\\/g" \ ' WITH (format 'text', NULL ''); -- Type: -- B = Browser @@ -42,12 +42,13 @@ COPY useragent FROM PROGRAM 'xml2csv http://www.user-agents.org/allagents.xml \ -- P = Proxy server, web filtering -- R = Robot, crawler, spider -- S = Spam or bad bot +DELETE FROM useragent; INSERT INTO useragent SELECT string,description,comment,link1 - ,CASE WHEN type LIKE '%B%' THEN 1 ELSE 0 END - ,CASE WHEN type LIKE '%C%' THEN 1 ELSE 0 END - ,CASE WHEN type LIKE '%D%' THEN 1 ELSE 0 END - ,CASE WHEN type LIKE '%P%' THEN 1 ELSE 0 END - ,CASE WHEN type LIKE '%R%' THEN 1 ELSE 0 END - ,CASE WHEN type LIKE '%S%' THEN 1 ELSE 0 END + ,CASE WHEN type LIKE '%B%' THEN true ELSE false END + ,CASE WHEN type LIKE '%C%' THEN true ELSE false END + ,CASE WHEN type LIKE '%D%' THEN true ELSE false END + ,CASE WHEN type LIKE '%P%' THEN true ELSE false END + ,CASE WHEN type LIKE '%R%' THEN true ELSE false END + ,CASE WHEN type LIKE '%S%' THEN true ELSE false END FROM _useragent; COMMIT;