]> git.nbdom.net Git - nb.git/commitdiff
lib/postgres/useragent.sql
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 9 Jan 2018 14:07:23 +0000 (14:07 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 9 Jan 2018 14:07:23 +0000 (14:07 +0000)
etc/profile.d/net.sh
lib/postgres/useragent.sql

index a9afe80b5df7598d95e8ab4bc118ef820fb3d09b..812c689d9a0e8d5d97c0d572128fc13a5fcff895 100644 (file)
@@ -42,5 +42,5 @@ html2pdf() {
 }
 
 xml2csv() {
-       xsltproc lib/xslt/xml2csv.xslt $@
+       xsltproc $NB_ROOT/lib/xslt/xml2csv.xslt $@
 }
index 3322d9c8cf8c1a79f4774617567b06d084319f80..713b8bae8041574e85f4d6249cbb9327f35a67d5 100644 (file)
@@ -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;