Compare commits
	
		
			2 commits
		
	
	
		
			bc03b5bead
			...
			6b6e9723b9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6b6e9723b9 | |||
| 1d81798149 | 
					 7 changed files with 542 additions and 607 deletions
				
			
		|  | @ -1,469 +0,0 @@ | ||||||
| { |  | ||||||
|     "node-red": { |  | ||||||
|         "name": "node-red", |  | ||||||
|         "version": "4.0.9-git", |  | ||||||
|         "local": false, |  | ||||||
|         "user": false, |  | ||||||
|         "nodes": { |  | ||||||
|             "junction": { |  | ||||||
|                 "name": "junction", |  | ||||||
|                 "types": [ |  | ||||||
|                     "junction" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/05-junction.js" |  | ||||||
|             }, |  | ||||||
|             "inject": { |  | ||||||
|                 "name": "inject", |  | ||||||
|                 "types": [ |  | ||||||
|                     "inject" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/20-inject.js" |  | ||||||
|             }, |  | ||||||
|             "debug": { |  | ||||||
|                 "name": "debug", |  | ||||||
|                 "types": [ |  | ||||||
|                     "debug" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/21-debug.js" |  | ||||||
|             }, |  | ||||||
|             "complete": { |  | ||||||
|                 "name": "complete", |  | ||||||
|                 "types": [ |  | ||||||
|                     "complete" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/24-complete.js" |  | ||||||
|             }, |  | ||||||
|             "catch": { |  | ||||||
|                 "name": "catch", |  | ||||||
|                 "types": [ |  | ||||||
|                     "catch" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/25-catch.js" |  | ||||||
|             }, |  | ||||||
|             "status": { |  | ||||||
|                 "name": "status", |  | ||||||
|                 "types": [ |  | ||||||
|                     "status" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/25-status.js" |  | ||||||
|             }, |  | ||||||
|             "link": { |  | ||||||
|                 "name": "link", |  | ||||||
|                 "types": [ |  | ||||||
|                     "link in", |  | ||||||
|                     "link out", |  | ||||||
|                     "link call" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/60-link.js" |  | ||||||
|             }, |  | ||||||
|             "comment": { |  | ||||||
|                 "name": "comment", |  | ||||||
|                 "types": [ |  | ||||||
|                     "comment" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/90-comment.js" |  | ||||||
|             }, |  | ||||||
|             "global-config": { |  | ||||||
|                 "name": "global-config", |  | ||||||
|                 "types": [ |  | ||||||
|                     "global-config" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/91-global-config.js" |  | ||||||
|             }, |  | ||||||
|             "unknown": { |  | ||||||
|                 "name": "unknown", |  | ||||||
|                 "types": [ |  | ||||||
|                     "unknown" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/98-unknown.js" |  | ||||||
|             }, |  | ||||||
|             "function": { |  | ||||||
|                 "name": "function", |  | ||||||
|                 "types": [ |  | ||||||
|                     "function" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/10-function.js" |  | ||||||
|             }, |  | ||||||
|             "switch": { |  | ||||||
|                 "name": "switch", |  | ||||||
|                 "types": [ |  | ||||||
|                     "switch" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/10-switch.js" |  | ||||||
|             }, |  | ||||||
|             "change": { |  | ||||||
|                 "name": "change", |  | ||||||
|                 "types": [ |  | ||||||
|                     "change" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/15-change.js" |  | ||||||
|             }, |  | ||||||
|             "range": { |  | ||||||
|                 "name": "range", |  | ||||||
|                 "types": [ |  | ||||||
|                     "range" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/16-range.js" |  | ||||||
|             }, |  | ||||||
|             "template": { |  | ||||||
|                 "name": "template", |  | ||||||
|                 "types": [ |  | ||||||
|                     "template" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/80-template.js" |  | ||||||
|             }, |  | ||||||
|             "delay": { |  | ||||||
|                 "name": "delay", |  | ||||||
|                 "types": [ |  | ||||||
|                     "delay" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/89-delay.js" |  | ||||||
|             }, |  | ||||||
|             "trigger": { |  | ||||||
|                 "name": "trigger", |  | ||||||
|                 "types": [ |  | ||||||
|                     "trigger" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/89-trigger.js" |  | ||||||
|             }, |  | ||||||
|             "exec": { |  | ||||||
|                 "name": "exec", |  | ||||||
|                 "types": [ |  | ||||||
|                     "exec" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/90-exec.js" |  | ||||||
|             }, |  | ||||||
|             "rbe": { |  | ||||||
|                 "name": "rbe", |  | ||||||
|                 "types": [ |  | ||||||
|                     "rbe" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/rbe.js" |  | ||||||
|             }, |  | ||||||
|             "tls": { |  | ||||||
|                 "name": "tls", |  | ||||||
|                 "types": [ |  | ||||||
|                     "tls-config" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/05-tls.js" |  | ||||||
|             }, |  | ||||||
|             "httpproxy": { |  | ||||||
|                 "name": "httpproxy", |  | ||||||
|                 "types": [ |  | ||||||
|                     "http proxy" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/06-httpproxy.js" |  | ||||||
|             }, |  | ||||||
|             "mqtt": { |  | ||||||
|                 "name": "mqtt", |  | ||||||
|                 "types": [ |  | ||||||
|                     "mqtt in", |  | ||||||
|                     "mqtt out", |  | ||||||
|                     "mqtt-broker" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/10-mqtt.js" |  | ||||||
|             }, |  | ||||||
|             "httpin": { |  | ||||||
|                 "name": "httpin", |  | ||||||
|                 "types": [ |  | ||||||
|                     "http in", |  | ||||||
|                     "http response" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/21-httpin.js" |  | ||||||
|             }, |  | ||||||
|             "httprequest": { |  | ||||||
|                 "name": "httprequest", |  | ||||||
|                 "types": [ |  | ||||||
|                     "http request" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/21-httprequest.js" |  | ||||||
|             }, |  | ||||||
|             "websocket": { |  | ||||||
|                 "name": "websocket", |  | ||||||
|                 "types": [ |  | ||||||
|                     "websocket in", |  | ||||||
|                     "websocket out", |  | ||||||
|                     "websocket-listener", |  | ||||||
|                     "websocket-client" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/22-websocket.js" |  | ||||||
|             }, |  | ||||||
|             "tcpin": { |  | ||||||
|                 "name": "tcpin", |  | ||||||
|                 "types": [ |  | ||||||
|                     "tcp in", |  | ||||||
|                     "tcp out", |  | ||||||
|                     "tcp request" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/31-tcpin.js" |  | ||||||
|             }, |  | ||||||
|             "udp": { |  | ||||||
|                 "name": "udp", |  | ||||||
|                 "types": [ |  | ||||||
|                     "udp in", |  | ||||||
|                     "udp out" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/32-udp.js" |  | ||||||
|             }, |  | ||||||
|             "CSV": { |  | ||||||
|                 "name": "CSV", |  | ||||||
|                 "types": [ |  | ||||||
|                     "csv" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-CSV.js" |  | ||||||
|             }, |  | ||||||
|             "HTML": { |  | ||||||
|                 "name": "HTML", |  | ||||||
|                 "types": [ |  | ||||||
|                     "html" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-HTML.js" |  | ||||||
|             }, |  | ||||||
|             "JSON": { |  | ||||||
|                 "name": "JSON", |  | ||||||
|                 "types": [ |  | ||||||
|                     "json" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-JSON.js" |  | ||||||
|             }, |  | ||||||
|             "XML": { |  | ||||||
|                 "name": "XML", |  | ||||||
|                 "types": [ |  | ||||||
|                     "xml" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-XML.js" |  | ||||||
|             }, |  | ||||||
|             "YAML": { |  | ||||||
|                 "name": "YAML", |  | ||||||
|                 "types": [ |  | ||||||
|                     "yaml" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-YAML.js" |  | ||||||
|             }, |  | ||||||
|             "split": { |  | ||||||
|                 "name": "split", |  | ||||||
|                 "types": [ |  | ||||||
|                     "split", |  | ||||||
|                     "join" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/17-split.js" |  | ||||||
|             }, |  | ||||||
|             "sort": { |  | ||||||
|                 "name": "sort", |  | ||||||
|                 "types": [ |  | ||||||
|                     "sort" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/18-sort.js" |  | ||||||
|             }, |  | ||||||
|             "batch": { |  | ||||||
|                 "name": "batch", |  | ||||||
|                 "types": [ |  | ||||||
|                     "batch" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/19-batch.js" |  | ||||||
|             }, |  | ||||||
|             "file": { |  | ||||||
|                 "name": "file", |  | ||||||
|                 "types": [ |  | ||||||
|                     "file", |  | ||||||
|                     "file in" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/storage/10-file.js" |  | ||||||
|             }, |  | ||||||
|             "watch": { |  | ||||||
|                 "name": "watch", |  | ||||||
|                 "types": [ |  | ||||||
|                     "watch" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": false, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/storage/23-watch.js" |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     "@nickcuper/node-red-contrib-html-pro": { |  | ||||||
|         "name": "@nickcuper/node-red-contrib-html-pro", |  | ||||||
|         "version": "1.0.1", |  | ||||||
|         "local": true, |  | ||||||
|         "user": true, |  | ||||||
|         "nodes": { |  | ||||||
|             "html-pro": { |  | ||||||
|                 "name": "html-pro", |  | ||||||
|                 "types": [ |  | ||||||
|                     "html-pro" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": true, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "@nickcuper/node-red-contrib-html-pro", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/.node-red/node_modules/@nickcuper/node-red-contrib-html-pro/nodes/html-pro/index.js" |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     "node-red-contrib-google-sheets-advance": { |  | ||||||
|         "name": "node-red-contrib-google-sheets-advance", |  | ||||||
|         "version": "0.0.7", |  | ||||||
|         "local": true, |  | ||||||
|         "user": true, |  | ||||||
|         "nodes": { |  | ||||||
|             "gSheetAdvance": { |  | ||||||
|                 "name": "gSheetAdvance", |  | ||||||
|                 "types": [ |  | ||||||
|                     "GSheetAdvance", |  | ||||||
|                     "gauthAdv" |  | ||||||
|                 ], |  | ||||||
|                 "enabled": true, |  | ||||||
|                 "local": true, |  | ||||||
|                 "user": false, |  | ||||||
|                 "module": "node-red-contrib-google-sheets-advance", |  | ||||||
|                 "file": "/home/mrosero/devs/projects/webservices/.node-red/node_modules/node-red-contrib-google-sheets-advance/gSheetAdvance.js" |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| { |  | ||||||
|     "instanceId": "a202990288260eaa" |  | ||||||
| } |  | ||||||
|  | @ -1,20 +0,0 @@ | ||||||
| { |  | ||||||
|     "_": { |  | ||||||
|         "editor": { |  | ||||||
|             "view": { |  | ||||||
|                 "view-store-zoom": false, |  | ||||||
|                 "view-store-position": false, |  | ||||||
|                 "view-show-grid": true, |  | ||||||
|                 "view-snap-grid": true, |  | ||||||
|                 "view-grid-size": 20, |  | ||||||
|                 "view-node-status": true, |  | ||||||
|                 "view-node-show-label": true, |  | ||||||
|                 "view-show-tips": true, |  | ||||||
|                 "view-show-welcome-tours": true |  | ||||||
|             }, |  | ||||||
|             "tours": { |  | ||||||
|                 "welcome": "4.0.9-git" |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| { |  | ||||||
|     "$": "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" |  | ||||||
| } |  | ||||||
|  | @ -7,6 +7,14 @@ | ||||||
|         "info": "", |         "info": "", | ||||||
|         "env": [] |         "env": [] | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         "id": "75e4ab943ee90cbf", | ||||||
|  |         "type": "tab", | ||||||
|  |         "label": "Browse AI", | ||||||
|  |         "disabled": false, | ||||||
|  |         "info": "", | ||||||
|  |         "env": [] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "id": "772316e0710af934", |         "id": "772316e0710af934", | ||||||
|         "type": "inject", |         "type": "inject", | ||||||
|  | @ -40,7 +48,7 @@ | ||||||
|         "id": "14d7e672986e5a93", |         "id": "14d7e672986e5a93", | ||||||
|         "type": "http request", |         "type": "http request", | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "Read IPACOOP", |         "name": "From IPACOOP", | ||||||
|         "method": "GET", |         "method": "GET", | ||||||
|         "ret": "txt", |         "ret": "txt", | ||||||
|         "paytoqs": "ignore", |         "paytoqs": "ignore", | ||||||
|  | @ -108,15 +116,16 @@ | ||||||
|         "id": "ef9384e43a31a072", |         "id": "ef9384e43a31a072", | ||||||
|         "type": "debug", |         "type": "debug", | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "debug 1", |         "name": "Coops", | ||||||
|         "active": true, |         "active": true, | ||||||
|         "tosidebar": true, |         "tosidebar": true, | ||||||
|         "console": false, |         "console": false, | ||||||
|         "tostatus": false, |         "tostatus": false, | ||||||
|         "complete": "false", |         "complete": "payload", | ||||||
|  |         "targetType": "msg", | ||||||
|         "statusVal": "", |         "statusVal": "", | ||||||
|         "statusType": "auto", |         "statusType": "auto", | ||||||
|         "x": 1060, |         "x": 1030, | ||||||
|         "y": 120, |         "y": 120, | ||||||
|         "wires": [] |         "wires": [] | ||||||
|     }, |     }, | ||||||
|  | @ -204,7 +213,7 @@ | ||||||
|         "reduceInit": "", |         "reduceInit": "", | ||||||
|         "reduceInitType": "", |         "reduceInitType": "", | ||||||
|         "reduceFixup": "", |         "reduceFixup": "", | ||||||
|         "x": 870, |         "x": 830, | ||||||
|         "y": 120, |         "y": 120, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|  | @ -223,7 +232,7 @@ | ||||||
|         "createDir": false, |         "createDir": false, | ||||||
|         "overwriteFile": "true", |         "overwriteFile": "true", | ||||||
|         "encoding": "none", |         "encoding": "none", | ||||||
|         "x": 1000, |         "x": 960, | ||||||
|         "y": 40, |         "y": 40, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|  | @ -248,16 +257,16 @@ | ||||||
|         "name": "Read Industrias (csv-raw)", |         "name": "Read Industrias (csv-raw)", | ||||||
|         "filename": "/home/mrosero/Documentos/mercadeo/industria/mfg001_raw_507.csv", |         "filename": "/home/mrosero/Documentos/mercadeo/industria/mfg001_raw_507.csv", | ||||||
|         "filenameType": "str", |         "filenameType": "str", | ||||||
|         "format": "lines", |         "format": "utf8", | ||||||
|         "chunk": false, |         "chunk": false, | ||||||
|         "sendError": false, |         "sendError": false, | ||||||
|         "encoding": "none", |         "encoding": "none", | ||||||
|         "allProps": true, |         "allProps": true, | ||||||
|         "x": 370, |         "x": 270, | ||||||
|         "y": 400, |         "y": 740, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|                 "f4f8079998fb73d5" |                 "5512e4f11e424bca" | ||||||
|             ] |             ] | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|  | @ -282,55 +291,31 @@ | ||||||
|         "topic": "", |         "topic": "", | ||||||
|         "payload": "", |         "payload": "", | ||||||
|         "payloadType": "date", |         "payloadType": "date", | ||||||
|         "x": 150, |         "x": 130, | ||||||
|         "y": 460, |         "y": 680, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|                 "df26defb28f7bf46" |                 "df26defb28f7bf46" | ||||||
|             ] |             ] | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|     { |  | ||||||
|         "id": "98fd8925d21c887b", |  | ||||||
|         "type": "csv", |  | ||||||
|         "z": "7f0acab470911e6e", |  | ||||||
|         "name": "Set to CSV", |  | ||||||
|         "spec": "rfc", |  | ||||||
|         "sep": ",", |  | ||||||
|         "hdrin": true, |  | ||||||
|         "hdrout": "none", |  | ||||||
|         "multi": "one", |  | ||||||
|         "ret": "\\r\\n", |  | ||||||
|         "temp": "", |  | ||||||
|         "skip": "0", |  | ||||||
|         "strings": true, |  | ||||||
|         "include_empty_strings": true, |  | ||||||
|         "include_null_values": false, |  | ||||||
|         "x": 630, |  | ||||||
|         "y": 480, |  | ||||||
|         "wires": [ |  | ||||||
|             [ |  | ||||||
|                 "29806b641ea02489" |  | ||||||
|             ] |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
|     { |     { | ||||||
|         "id": "29806b641ea02489", |         "id": "29806b641ea02489", | ||||||
|         "type": "function", |         "type": "function", | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "Fix Data", |         "name": "Fix Data", | ||||||
|         "func": "var productos = \"\"\nvar sector = \"\"\nvar instagram = \"\"\nvar facebook = \"\"\nvar website = \"\"\nvar email = \"\"\nvar contact = \"\"\nvar industry = []\n\nlet emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nlet phoneRegex = /(\\+?\\d{1,4}[-.\\s]?)?(\\(?\\d{2,4}\\)?[-.\\s]?)?\\d{3,4}[-.\\s]?\\d{3,4}/g;\n   \nif (msg.payload.Products.startsWith(\"Produce:\") ) {\n    productos = msg.payload.Products.substring(9)\n}\n\nif (msg.payload.Products.startsWith(\"Sector:\") ) {\n    sector=msg.payload['Products'].substring(8)\n}\n\nif (emailRegex.test(msg.payload['Female Employees Percentage'])) {\n    email = msg.payload['Female Employees Percentage'];\n} \n\nif (emailRegex.test(msg.payload['Year Founded'])) {\n    email = msg.payload['Year Founded'];\n}\n\nif (emailRegex.test(msg.payload['market'])) {\n    email = msg.payload['market'];\n}\n\nif (emailRegex.test(msg.payload['Contact Information'])) {\n    email = msg.payload['Contact Information'];\n}\n\nif (typeof msg.payload['email'] !== \"undefined\") {\n    if (emailRegex.test(msg.payload['email'])) {\n        email = msg.payload['email'];\n    }\n}\n\nif (phoneRegex.test(msg.payload['Female Employees Percentage'])) {\n        contact = msg.payload['Female Employees Percentage'];\n} \n\nif (phoneRegex.test(msg.payload['Year Founded'])) {\n    contact = msg.payload['Year Founded'];\n}\n\nif (phoneRegex.test(msg.payload['market'])) {\n    contact = msg.payload['market'];\n}\n\nif (typeof msg.payload['Contact Information'] !== \"undefined\") {\n    if (phoneRegex.test(msg.payload['Contact Information'])) {\n        contact = msg.payload['Contact Information'];\n    }\n}\n\nif ( typeof msg.payload['Instagram Link'] !== \"undefined\" ) {\n    if (msg.payload['Instagram Link'].search(\"instagram.com\") !== -1) {\n        instagram = msg.payload['Instagram Link']\n    } else if (msg.payload['Instagram Link'].search(\"facebook.com\") !== -1) {\n        facebook = msg.payload['Instagram Link']\n    } else {\n        website = msg.payload['Instagram Link']\n    }\n}\n\nif ( typeof msg.payload['Facebook Link'] !== \"undefined\" ) {\n    if (msg.payload['Facebook Link'].search(\"instagram.com\") !== -1) {\n        instagram = msg.payload['Facebook Link']\n    } else if (msg.payload['Facebook Link'].search(\"facebook.com\") !== -1) {\n        facebook = msg.payload['Facebook Link']\n    } else {\n        website = msg.payload['Facebook Link']\n    }\n}\n\nindustry=[\n    msg.payload['Position'],\n    msg.payload['Company Name'].toLocaleUpperCase(),\n    sector.replace(/\\b\\w+/g, word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()),\n    productos.toLowerCase().replace(/(^|\\.\\s+)([a-z])/g, (match, sep, letter) => sep + letter.toUpperCase()),\n    msg.payload['Company Size'],\n    msg.payload['Number of Employees'],\n    msg.payload['Location'],\n    contact,\n    email,\n    website,\n    instagram,\n    facebook,\n    msg.payload['Company Image'],\n]\n\nmsg.payload = industry;\nreturn msg;", |         "func": "var productos = \"\";\nvar contact = \"\";\nvar sector = \"\";\nvar instagram = \"\";\nvar facebook = \"\";\nvar website = \"\";\nvar email = \"\";\n\nlet emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nlet phoneRegex = /(\\+?\\d{1,4}[-.\\s]?)?(\\(?\\d{2,4}\\)?[-.\\s]?)?\\d{3,4}[-.\\s]?\\d{3,4}/g;\n   \nif (msg.payload['Products'].startsWith(\"Sector\") ) {\n    sector=msg.payload['Products'].substring(8);\n} else {\n    if (msg.payload['Products'].startsWith(\"Produce\")) {\n        productos = msg.payload['Products'].substring(9)\n    } else {\n        productos = msg.payload['Products'];\n    }\n}\n\nif (emailRegex.test(msg.payload['Email'])) {\n    email = msg.payload['Email'];\n}\n\nif (emailRegex.test(msg.payload['Contact Information'])) {\n    email = msg.payload['Contact Information'];\n} else {\n    contact = msg.payload['Contact Information']\n}\n\nif (msg.payload['Instagram Link'] == \"null\") {\n    msg.payload['Instagram Link'] = \"\";\n};\n\nif (msg.payload['Facebook Link'] == \"null\") {\n    msg.payload['Facebook Link'] = \"\";\n};\n\nif (msg.payload['Company Details Link'] == \"null\") {\n    msg.payload['Company Details Link'] = \"\";\n};\n\nif (msg.payload['Instagram Link'].search(\"instagram\") == -1) {\n    if (msg.payload['Instagram Link'].search(\"facebook\") == -1) {\n        website = msg.payload['Instagram Link'];\n    } else {\n        facebook = msg.payload['Instagram Link'];\n    }\n} else {\n    instagram = msg.payload['Instagram Link'];\n};\n\nif (msg.payload['Facebook Link'].search(\"facebook\") == -1) { \n    if (msg.payload['Facebook Link'].search(\"instagram\") == -1) {\n        if (website == \"\") {\n            website = msg.payload['Facebook Link'];\n        }    \n    } else {\n        if (instagram == \"\") {\n            instagram = msg.payload['Facebook Link'];\n        }\n    }\n} else {\n    facebook = msg.payload['Facebook Link'];\n};\n\nvar industry = {\n    \"Position\": msg.payload['Position'],\n    \"Company Name\": msg.payload['Company Name'].toLocaleUpperCase(),\n    \"Sector\": sector.replace(/\\b\\w+/g, word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()),\n    \"Products\": productos.toLowerCase().replace(/(^|\\.\\s+)([a-z])/g, (match, sep, letter) => sep + letter.toUpperCase()),\n    \"Company Size\": msg.payload['Company Size'],\n    \"Number of Employees\": msg.payload['Number of Employees'],\n    \"Location\": msg.payload['Location'],\n    \"Contact Information\": contact,\n    \"Email\": email,\n    \"Website URL\": website,\n    \"Instagram Link\": instagram,\n    \"Facebook Link\": facebook,\n    \"Company Details Link\": msg.payload['Company Details Link'],\n    \"Company Image\": msg.payload['Company Image']\n};\n\nmsg.payload = {};\nmsg.payload = industry;\nreturn msg;", | ||||||
|         "outputs": 1, |         "outputs": 1, | ||||||
|         "timeout": 0, |         "timeout": 0, | ||||||
|         "noerr": 0, |         "noerr": 0, | ||||||
|         "initialize": "", |         "initialize": "", | ||||||
|         "finalize": "", |         "finalize": "", | ||||||
|         "libs": [], |         "libs": [], | ||||||
|         "x": 820, |         "x": 580, | ||||||
|         "y": 440, |         "y": 680, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|                 "5512e4f11e424bca" |                 "d92b4c8ffab2ca69" | ||||||
|             ] |             ] | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|  | @ -343,10 +328,10 @@ | ||||||
|         "filenameType": "str", |         "filenameType": "str", | ||||||
|         "appendNewline": false, |         "appendNewline": false, | ||||||
|         "createDir": false, |         "createDir": false, | ||||||
|         "overwriteFile": "false", |         "overwriteFile": "true", | ||||||
|         "encoding": "none", |         "encoding": "none", | ||||||
|         "x": 860, |         "x": 900, | ||||||
|         "y": 580, |         "y": 740, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|                 "043fa26ea24c4a85" |                 "043fa26ea24c4a85" | ||||||
|  | @ -357,91 +342,40 @@ | ||||||
|         "id": "043fa26ea24c4a85", |         "id": "043fa26ea24c4a85", | ||||||
|         "type": "debug", |         "type": "debug", | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "debug 2", |         "name": "industrias", | ||||||
|         "active": true, |         "active": true, | ||||||
|         "tosidebar": true, |         "tosidebar": true, | ||||||
|         "console": false, |         "console": false, | ||||||
|         "tostatus": false, |         "tostatus": false, | ||||||
|         "complete": "false", |         "complete": "payload", | ||||||
|  |         "targetType": "msg", | ||||||
|         "statusVal": "", |         "statusVal": "", | ||||||
|         "statusType": "auto", |         "statusType": "auto", | ||||||
|         "x": 1060, |         "x": 1040, | ||||||
|         "y": 440, |         "y": 680, | ||||||
|         "wires": [] |         "wires": [] | ||||||
|     }, |     }, | ||||||
|     { |  | ||||||
|         "id": "f4f8079998fb73d5", |  | ||||||
|         "type": "switch", |  | ||||||
|         "z": "7f0acab470911e6e", |  | ||||||
|         "name": "Clean empty record", |  | ||||||
|         "property": "payload", |  | ||||||
|         "propertyType": "msg", |  | ||||||
|         "rules": [ |  | ||||||
|             { |  | ||||||
|                 "t": "nempty" |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|         "checkall": "true", |  | ||||||
|         "repair": true, |  | ||||||
|         "outputs": 1, |  | ||||||
|         "x": 610, |  | ||||||
|         "y": 400, |  | ||||||
|         "wires": [ |  | ||||||
|             [ |  | ||||||
|                 "d92b4c8ffab2ca69" |  | ||||||
|             ] |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
|     { |     { | ||||||
|         "id": "5512e4f11e424bca", |         "id": "5512e4f11e424bca", | ||||||
|         "type": "csv", |         "type": "csv", | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "", |         "name": "Get CSV", | ||||||
|         "spec": "rfc", |         "spec": "rfc", | ||||||
|         "sep": ",", |         "sep": ",", | ||||||
|         "hdrin": "", |         "hdrin": true, | ||||||
|         "hdrout": "none", |         "hdrout": "none", | ||||||
|         "multi": "mult", |         "multi": "one", | ||||||
|         "ret": "\\r\\n", |         "ret": "\\r\\n", | ||||||
|         "temp": "", |         "temp": "", | ||||||
|         "skip": "0", |         "skip": "0", | ||||||
|         "strings": false, |         "strings": true, | ||||||
|         "include_empty_strings": false, |         "include_empty_strings": true, | ||||||
|         "include_null_values": "", |         "include_null_values": true, | ||||||
|         "x": 690, |         "x": 480, | ||||||
|         "y": 620, |         "y": 740, | ||||||
|         "wires": [ |         "wires": [ | ||||||
|             [ |             [ | ||||||
|                 "7d2cd39e7bcf1c60" |                 "29806b641ea02489" | ||||||
|             ] |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|         "id": "d92b4c8ffab2ca69", |  | ||||||
|         "type": "join", |  | ||||||
|         "z": "7f0acab470911e6e", |  | ||||||
|         "name": "", |  | ||||||
|         "mode": "auto", |  | ||||||
|         "build": "string", |  | ||||||
|         "property": "payload", |  | ||||||
|         "propertyType": "msg", |  | ||||||
|         "key": "topic", |  | ||||||
|         "joiner": "\\n", |  | ||||||
|         "joinerType": "str", |  | ||||||
|         "useparts": false, |  | ||||||
|         "accumulate": false, |  | ||||||
|         "timeout": "", |  | ||||||
|         "count": "", |  | ||||||
|         "reduceRight": false, |  | ||||||
|         "reduceExp": "", |  | ||||||
|         "reduceInit": "", |  | ||||||
|         "reduceInitType": "", |  | ||||||
|         "reduceFixup": "", |  | ||||||
|         "x": 430, |  | ||||||
|         "y": 460, |  | ||||||
|         "wires": [ |  | ||||||
|             [ |  | ||||||
|                 "98fd8925d21c887b" |  | ||||||
|             ] |             ] | ||||||
|         ] |         ] | ||||||
|     }, |     }, | ||||||
|  | @ -451,8 +385,462 @@ | ||||||
|         "z": "7f0acab470911e6e", |         "z": "7f0acab470911e6e", | ||||||
|         "name": "Industrias Leads", |         "name": "Industrias Leads", | ||||||
|         "info": "### Fuente: MICI - Directorio de Empresas", |         "info": "### Fuente: MICI - Directorio de Empresas", | ||||||
|         "x": 100, |         "x": 140, | ||||||
|         "y": 360, |         "y": 320, | ||||||
|         "wires": [] |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "569e579e486cbf1f", | ||||||
|  |         "type": "inject", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Start", | ||||||
|  |         "props": [ | ||||||
|  |             { | ||||||
|  |                 "p": "payload" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "p": "topic", | ||||||
|  |                 "vt": "str" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "repeat": "", | ||||||
|  |         "crontab": "", | ||||||
|  |         "once": false, | ||||||
|  |         "onceDelay": 0.1, | ||||||
|  |         "topic": "", | ||||||
|  |         "payload": "", | ||||||
|  |         "payloadType": "date", | ||||||
|  |         "x": 130, | ||||||
|  |         "y": 460, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "1a3ddb45b2149290" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "1a3ddb45b2149290", | ||||||
|  |         "type": "http request", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Get BrowseAI Tasks List", | ||||||
|  |         "method": "GET", | ||||||
|  |         "ret": "obj", | ||||||
|  |         "paytoqs": "ignore", | ||||||
|  |         "url": "https://api.browse.ai/v2/robots/6b541bba-036a-49cd-9268-fa76a2480371/tasks?page=1", | ||||||
|  |         "tls": "", | ||||||
|  |         "persist": false, | ||||||
|  |         "proxy": "", | ||||||
|  |         "insecureHTTPParser": false, | ||||||
|  |         "authType": "bearer", | ||||||
|  |         "senderr": false, | ||||||
|  |         "headers": [ | ||||||
|  |             { | ||||||
|  |                 "keyType": "Content-Type", | ||||||
|  |                 "keyValue": "", | ||||||
|  |                 "valueType": "application/json", | ||||||
|  |                 "valueValue": "" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "x": 210, | ||||||
|  |         "y": 580, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "52965cb5601ee4a4" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "04ba386d856493bd", | ||||||
|  |         "type": "debug", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "industrias (raw)", | ||||||
|  |         "active": true, | ||||||
|  |         "tosidebar": true, | ||||||
|  |         "console": false, | ||||||
|  |         "tostatus": false, | ||||||
|  |         "complete": "payload", | ||||||
|  |         "targetType": "msg", | ||||||
|  |         "statusVal": "", | ||||||
|  |         "statusType": "auto", | ||||||
|  |         "x": 1020, | ||||||
|  |         "y": 580, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "52965cb5601ee4a4", | ||||||
|  |         "type": "function", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Get Last Task URL", | ||||||
|  |         "func": "var index = msg.payload.result.robotTasks.totalCount - 1;\nmsg.url = msg.payload.result.robotTasks.items[index].capturedDataTemporaryUrl;\nreturn msg;", | ||||||
|  |         "outputs": 1, | ||||||
|  |         "timeout": 0, | ||||||
|  |         "noerr": 0, | ||||||
|  |         "initialize": "", | ||||||
|  |         "finalize": "", | ||||||
|  |         "libs": [], | ||||||
|  |         "x": 450, | ||||||
|  |         "y": 580, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "fc19a6825baae116" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "05b7e66417dd4ae7", | ||||||
|  |         "type": "comment", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Get Company List (Browse AI)", | ||||||
|  |         "info": "### Fuente: MICI - Directorio de Empresas", | ||||||
|  |         "x": 360, | ||||||
|  |         "y": 460, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "be847922faca4cf9", | ||||||
|  |         "type": "comment", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Local Company List (Fix)", | ||||||
|  |         "info": "### Fuente: MICI - Directorio de Empresas", | ||||||
|  |         "x": 350, | ||||||
|  |         "y": 680, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "fc19a6825baae116", | ||||||
|  |         "type": "http request", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Get Last Task", | ||||||
|  |         "method": "GET", | ||||||
|  |         "ret": "obj", | ||||||
|  |         "paytoqs": "ignore", | ||||||
|  |         "url": "", | ||||||
|  |         "tls": "", | ||||||
|  |         "persist": false, | ||||||
|  |         "proxy": "", | ||||||
|  |         "insecureHTTPParser": false, | ||||||
|  |         "authType": "", | ||||||
|  |         "senderr": false, | ||||||
|  |         "headers": [ | ||||||
|  |             { | ||||||
|  |                 "keyType": "Content-Type", | ||||||
|  |                 "keyValue": "", | ||||||
|  |                 "valueType": "application/json", | ||||||
|  |                 "valueValue": "" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "x": 320, | ||||||
|  |         "y": 520, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "d5fbf9247f3d134b" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "d5fbf9247f3d134b", | ||||||
|  |         "type": "change", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Get Company Directory", | ||||||
|  |         "rules": [ | ||||||
|  |             { | ||||||
|  |                 "t": "set", | ||||||
|  |                 "p": "payload", | ||||||
|  |                 "pt": "msg", | ||||||
|  |                 "to": "payload.capturedLists['Company Directory']", | ||||||
|  |                 "tot": "msg" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "action": "", | ||||||
|  |         "property": "", | ||||||
|  |         "from": "", | ||||||
|  |         "to": "", | ||||||
|  |         "reg": false, | ||||||
|  |         "x": 650, | ||||||
|  |         "y": 520, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "0c2d05578bfc4ffa" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "0c2d05578bfc4ffa", | ||||||
|  |         "type": "csv", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "To CSV", | ||||||
|  |         "spec": "rfc", | ||||||
|  |         "sep": ",", | ||||||
|  |         "hdrin": "", | ||||||
|  |         "hdrout": "once", | ||||||
|  |         "multi": "mult", | ||||||
|  |         "ret": "\\r\\n", | ||||||
|  |         "temp": "", | ||||||
|  |         "skip": "0", | ||||||
|  |         "strings": true, | ||||||
|  |         "include_empty_strings": "", | ||||||
|  |         "include_null_values": "", | ||||||
|  |         "x": 780, | ||||||
|  |         "y": 580, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "701633f3bdf43c9f" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "701633f3bdf43c9f", | ||||||
|  |         "type": "file", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "Save industrias (csv-raw)", | ||||||
|  |         "filename": "/home/mrosero/Documentos/mercadeo/industria/mfg001_raw_507.csv", | ||||||
|  |         "filenameType": "str", | ||||||
|  |         "appendNewline": false, | ||||||
|  |         "createDir": false, | ||||||
|  |         "overwriteFile": "false", | ||||||
|  |         "encoding": "none", | ||||||
|  |         "x": 970, | ||||||
|  |         "y": 520, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "04ba386d856493bd" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "d92b4c8ffab2ca69", | ||||||
|  |         "type": "join", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "", | ||||||
|  |         "mode": "auto", | ||||||
|  |         "build": "array", | ||||||
|  |         "property": "payload", | ||||||
|  |         "propertyType": "msg", | ||||||
|  |         "key": "topic", | ||||||
|  |         "joiner": "\\n", | ||||||
|  |         "joinerType": "str", | ||||||
|  |         "useparts": true, | ||||||
|  |         "accumulate": false, | ||||||
|  |         "timeout": "", | ||||||
|  |         "count": "", | ||||||
|  |         "reduceRight": false, | ||||||
|  |         "reduceExp": "", | ||||||
|  |         "reduceInit": "", | ||||||
|  |         "reduceInitType": "num", | ||||||
|  |         "reduceFixup": "", | ||||||
|  |         "x": 810, | ||||||
|  |         "y": 680, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "6747a41997739b16" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "6747a41997739b16", | ||||||
|  |         "type": "csv", | ||||||
|  |         "z": "7f0acab470911e6e", | ||||||
|  |         "name": "To CSV", | ||||||
|  |         "spec": "rfc", | ||||||
|  |         "sep": ",", | ||||||
|  |         "hdrin": "", | ||||||
|  |         "hdrout": "all", | ||||||
|  |         "multi": "mult", | ||||||
|  |         "ret": "\\r\\n", | ||||||
|  |         "temp": "Position,Company Name,Sector,Products,Location,Company Size,Number of Employees,Contact Information,Email,Company Details Link,Company Image,Instagram Link,Facebook Link,Website URL", | ||||||
|  |         "skip": "0", | ||||||
|  |         "strings": true, | ||||||
|  |         "include_empty_strings": "", | ||||||
|  |         "include_null_values": "", | ||||||
|  |         "x": 710, | ||||||
|  |         "y": 740, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "7d2cd39e7bcf1c60" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "9efaa84d2b3edb26", | ||||||
|  |         "type": "inject", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Start", | ||||||
|  |         "props": [ | ||||||
|  |             { | ||||||
|  |                 "p": "payload" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "p": "topic", | ||||||
|  |                 "vt": "str" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "repeat": "", | ||||||
|  |         "crontab": "", | ||||||
|  |         "once": false, | ||||||
|  |         "onceDelay": 0.1, | ||||||
|  |         "topic": "", | ||||||
|  |         "payload": "", | ||||||
|  |         "payloadType": "date", | ||||||
|  |         "x": 110, | ||||||
|  |         "y": 60, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "3b937e6b06c3278d" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "3b937e6b06c3278d", | ||||||
|  |         "type": "http request", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Browse AI Status", | ||||||
|  |         "method": "GET", | ||||||
|  |         "ret": "txt", | ||||||
|  |         "paytoqs": "ignore", | ||||||
|  |         "url": "https://api.browse.ai/v2/status", | ||||||
|  |         "tls": "", | ||||||
|  |         "persist": false, | ||||||
|  |         "proxy": "", | ||||||
|  |         "insecureHTTPParser": false, | ||||||
|  |         "authType": "bearer", | ||||||
|  |         "senderr": false, | ||||||
|  |         "headers": [], | ||||||
|  |         "x": 190, | ||||||
|  |         "y": 140, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "1d3199e999f849ac" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "1d3199e999f849ac", | ||||||
|  |         "type": "debug", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Status", | ||||||
|  |         "active": true, | ||||||
|  |         "tosidebar": true, | ||||||
|  |         "console": false, | ||||||
|  |         "tostatus": false, | ||||||
|  |         "complete": "payload", | ||||||
|  |         "targetType": "msg", | ||||||
|  |         "statusVal": "", | ||||||
|  |         "statusType": "auto", | ||||||
|  |         "x": 370, | ||||||
|  |         "y": 140, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "423c04669f93f87f", | ||||||
|  |         "type": "comment", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Palataform Status", | ||||||
|  |         "info": "", | ||||||
|  |         "x": 310, | ||||||
|  |         "y": 60, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "4839de9f51b65164", | ||||||
|  |         "type": "inject", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Start", | ||||||
|  |         "props": [ | ||||||
|  |             { | ||||||
|  |                 "p": "payload" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "p": "topic", | ||||||
|  |                 "vt": "str" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "repeat": "", | ||||||
|  |         "crontab": "", | ||||||
|  |         "once": false, | ||||||
|  |         "onceDelay": 0.1, | ||||||
|  |         "topic": "", | ||||||
|  |         "payload": "", | ||||||
|  |         "payloadType": "date", | ||||||
|  |         "x": 590, | ||||||
|  |         "y": 60, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "f15af69a5d014b84" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "f15af69a5d014b84", | ||||||
|  |         "type": "http request", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Browse AI Robots List", | ||||||
|  |         "method": "GET", | ||||||
|  |         "ret": "txt", | ||||||
|  |         "paytoqs": "body", | ||||||
|  |         "url": "https://api.browse.ai/v2/robots", | ||||||
|  |         "tls": "", | ||||||
|  |         "persist": false, | ||||||
|  |         "proxy": "", | ||||||
|  |         "insecureHTTPParser": false, | ||||||
|  |         "authType": "bearer", | ||||||
|  |         "senderr": false, | ||||||
|  |         "headers": [ | ||||||
|  |             { | ||||||
|  |                 "keyType": "Content-Type", | ||||||
|  |                 "keyValue": "", | ||||||
|  |                 "valueType": "application/json", | ||||||
|  |                 "valueValue": "" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "x": 680, | ||||||
|  |         "y": 140, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "e3d6394c2b98a7d1" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "ab16634fed3c7240", | ||||||
|  |         "type": "debug", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Robots", | ||||||
|  |         "active": true, | ||||||
|  |         "tosidebar": true, | ||||||
|  |         "console": false, | ||||||
|  |         "tostatus": false, | ||||||
|  |         "complete": "payload.robots.items", | ||||||
|  |         "targetType": "msg", | ||||||
|  |         "statusVal": "", | ||||||
|  |         "statusType": "auto", | ||||||
|  |         "x": 1020, | ||||||
|  |         "y": 120, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "140989992205eda1", | ||||||
|  |         "type": "comment", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "Browse AI Robots List", | ||||||
|  |         "info": "", | ||||||
|  |         "x": 880, | ||||||
|  |         "y": 60, | ||||||
|  |         "wires": [] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "id": "e3d6394c2b98a7d1", | ||||||
|  |         "type": "json", | ||||||
|  |         "z": "75e4ab943ee90cbf", | ||||||
|  |         "name": "", | ||||||
|  |         "property": "payload", | ||||||
|  |         "action": "", | ||||||
|  |         "pretty": false, | ||||||
|  |         "x": 870, | ||||||
|  |         "y": 140, | ||||||
|  |         "wires": [ | ||||||
|  |             [ | ||||||
|  |                 "ab16634fed3c7240" | ||||||
|  |             ] | ||||||
|  |         ] | ||||||
|     } |     } | ||||||
| ] | ] | ||||||
							
								
								
									
										15
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								CHANGELOG.md
									
									
									
									
									
								
							|  | @ -5,6 +5,20 @@ Todos los cambios notables en este proyecto se documentarán en este archivo. | ||||||
| El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||||||
| y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||||||
| 
 | 
 | ||||||
|  | ## [0.5.0] - 2025-03-26 | ||||||
|  | 
 | ||||||
|  | ### Añadido | ||||||
|  | - Documentación detallada sobre herramientas y plataformas utilizadas | ||||||
|  | - Nueva sección "Herramientas de Procesamiento" en README.md | ||||||
|  | - Información sobre integración con Browse AI y procesamiento mediante expresiones regulares | ||||||
|  | - Detalles sobre fuentes de datos (IPACOOP, MICI) | ||||||
|  | - Requisito de cuenta en Browse AI para el flujo de industrias | ||||||
|  | 
 | ||||||
|  | ### Mejorado | ||||||
|  | - Sección de tecnologías expandida con información más completa | ||||||
|  | - Detalles sobre el proceso de extracción y normalización de datos | ||||||
|  | - Documentación sobre el script personalizado para gestión del servicio | ||||||
|  | 
 | ||||||
| ## [0.4.0] - 2025-03-26 | ## [0.4.0] - 2025-03-26 | ||||||
| 
 | 
 | ||||||
| ### Añadido | ### Añadido | ||||||
|  | @ -51,6 +65,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h | ||||||
| - Licencia privativa (LICENSE.md) | - Licencia privativa (LICENSE.md) | ||||||
| - Configuración inicial del repositorio | - Configuración inicial del repositorio | ||||||
| 
 | 
 | ||||||
|  | [0.5.0]: https://github.com/username/webservices/compare/v0.4.0...v0.5.0 | ||||||
| [0.4.0]: https://github.com/username/webservices/compare/v0.3.0...v0.4.0 | [0.4.0]: https://github.com/username/webservices/compare/v0.3.0...v0.4.0 | ||||||
| [0.3.0]: https://github.com/username/webservices/compare/v0.2.0...v0.3.0 | [0.3.0]: https://github.com/username/webservices/compare/v0.2.0...v0.3.0 | ||||||
| [0.2.0]: https://github.com/username/webservices/compare/v0.1.0...v0.2.0 | [0.2.0]: https://github.com/username/webservices/compare/v0.1.0...v0.2.0 | ||||||
|  |  | ||||||
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							|  | @ -8,11 +8,15 @@ | ||||||
| 
 | 
 | ||||||
| Plataforma de servicios web basada en Node-RED para orquestación y automatización de servicios WEBAPI. El proyecto incluye flujos automatizados para extracción de datos (web scraping) y procesamiento de información desde fuentes públicas. | Plataforma de servicios web basada en Node-RED para orquestación y automatización de servicios WEBAPI. El proyecto incluye flujos automatizados para extracción de datos (web scraping) y procesamiento de información desde fuentes públicas. | ||||||
| 
 | 
 | ||||||
| ## 🔧 Tecnologías | ## 🔧 Tecnologías y Plataformas | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| Framework: Node-RED v4.0.9 | Framework Principal: Node-RED v4.0.9 | ||||||
| Plataforma: Node.js | Plataforma: Node.js | ||||||
|  | Extracción de Datos: Browse AI, Web Scraping Directo | ||||||
|  | Análisis de Contenido: HTML Parser, Expresiones Regulares | ||||||
|  | Procesamiento: Transformación JSON/CSV, Normalización de Texto | ||||||
|  | Almacenamiento: Archivos CSV Locales | ||||||
| Fecha de Creación: 2025-03-23 | Fecha de Creación: 2025-03-23 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | @ -125,11 +129,34 @@ Flujo para procesar y normalizar datos de industrias manufactureras en Panamá. | ||||||
| 
 | 
 | ||||||
| **Fuente de datos:** MICI - Directorio de Empresas (datos preexistentes) | **Fuente de datos:** MICI - Directorio de Empresas (datos preexistentes) | ||||||
| 
 | 
 | ||||||
|  | ## 🛠️ Herramientas de Procesamiento | ||||||
|  | 
 | ||||||
|  | El proyecto utiliza varias herramientas especializadas para el procesamiento de datos: | ||||||
|  | 
 | ||||||
|  | ### Extracción de Datos | ||||||
|  | - **Web Scraping Directo**: Utilizando nodos HTTP y HTML para obtener datos del sitio de IPACOOP | ||||||
|  | - **Browse AI**: Plataforma de automatización para scraping que facilita la extracción de datos estructurados de sitios complejos | ||||||
|  | 
 | ||||||
|  | ### Procesamiento de Datos | ||||||
|  | - **HTML Parser**: Extracción y manipulación de tablas y elementos HTML | ||||||
|  | - **Expresiones Regulares**: Identificación de patrones para emails, teléfonos y URLs | ||||||
|  | - **Normalización de Texto**: Capitalización adecuada, eliminación de espacios innecesarios | ||||||
|  | - **Validación de Datos**: Verificación de formatos para información de contacto | ||||||
|  | 
 | ||||||
|  | ### Fuentes de Datos | ||||||
|  | - **IPACOOP**: Instituto Panameño Autónomo Cooperativo (datos de cooperativas) | ||||||
|  | - **MICI**: Ministerio de Comercio e Industrias (directorio de empresas) | ||||||
|  | 
 | ||||||
|  | ### Gestión del Servicio | ||||||
|  | - **Script Personalizado**: Facilita el inicio/detención del servicio de Node-RED | ||||||
|  | - **PM2**: Para ejecución como servicio en producción | ||||||
|  | 
 | ||||||
| ## 🔍 Prerrequisitos | ## 🔍 Prerrequisitos | ||||||
| 
 | 
 | ||||||
| - Node.js 18.x o superior | - Node.js 18.x o superior | ||||||
| - NPM 8.x o superior | - NPM 8.x o superior | ||||||
| - Permisos para instalar paquetes globales (opcional) | - Permisos para instalar paquetes globales (opcional) | ||||||
|  | - Cuenta en Browse AI (para el flujo de industrias) | ||||||
| 
 | 
 | ||||||
| ## ⚙️ Configuración | ## ⚙️ Configuración | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue