은승우

ocr

Showing 1 changed file with 53 additions and 22 deletions
1 -
2 var express = require("express"); 1 var express = require("express");
3 var app = express(); 2 var app = express();
4 const line = require('@line/bot-sdk'); 3 const line = require('@line/bot-sdk');
5 var request = require('request'); 4 var request = require('request');
6 var https=require('https'); 5 var https=require('https');
7 var http=require('http'); 6 var http=require('http');
8 -const lex = require('greenlock-express').create({ 7 +
8 +/*
9 +var fs = require("fs");
10 +
11 +var httpsOptions = {
12 + key: fs.readFileSync('/etc/letsencrypt/live/oss.chatbot.bu.to/privkey.pem'),
13 + cert: fs.readFileSync('/etc/letsencrypt/live/oss.chatbot.bu.to/cert.pem')
14 +};
15 +
16 +http.createServer(app).listen(80);
17 +https.createServer(httpsOptions, app).listen(443);
18 +*/
19 +/* if ssl expired
20 +var greenlock= require('greenlock-express');
21 +const lex = greenlock .create({
9 version: 'draft-11', // 버전2 22 version: 'draft-11', // 버전2
10 store: require('greenlock-store-fs'), 23 store: require('greenlock-store-fs'),
11 configDir: '/etc/letsencrypt', // 또는 ~/letsencrypt/etc 24 configDir: '/etc/letsencrypt', // 또는 ~/letsencrypt/etc
...@@ -21,15 +34,11 @@ const lex = require('greenlock-express').create({ ...@@ -21,15 +34,11 @@ const lex = require('greenlock-express').create({
21 }, 34 },
22 renewWithin: 81 * 24 * 60 * 60 * 1000, 35 renewWithin: 81 * 24 * 60 * 60 * 1000,
23 renewBy: 80 * 24 * 60 * 60 * 1000, 36 renewBy: 80 * 24 * 60 * 60 * 1000,
24 -});//papago api 37 +});*/
38 +
39 +//papago api
25 40
26 41
27 -https.createServer(lex.httpsOptions, lex.middleware(app)).listen((process.env.SSL_PORT || 443),()=>{
28 - console.log("server on 443");
29 -});
30 -http.createServer(lex.middleware(require('redirect-https')())).listen(process.env.PORT || 80,()=>{
31 - console.log("server on 80");
32 -});
33 //번역 api_url 42 //번역 api_url
34 var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt'; 43 var translate_api_url = 'https://openapi.naver.com/v1/papago/n2mt';
35 44
...@@ -53,22 +62,31 @@ const client = new line.Client(config); ...@@ -53,22 +62,31 @@ const client = new line.Client(config);
53 62
54 // register a webhook handler with middleware 63 // register a webhook handler with middleware
55 // about the middleware, please refer to doc 64 // about the middleware, please refer to doc
56 -const vision = require('@google-cloud/vision');
57 65
58 // Creates a client 66 // Creates a client
59 -const visionclient = new vision.ImageAnnotatorClient(); 67 +var vision = require('google-vision-api-client');
68 +
69 +var requtil = vision.requtil;
70 +
71 +
72 +
73 +//Prepare your service account from trust preview certificated project
74 +
75 +var jsonfile = '/home/ubuntu/a/LINEBOT/googlevisionapikey';
60 76
61 -/**
62 - * TODO(developer): Uncomment the following line before running the sample.
63 - */
64 -// const fileName = 'Local image file, e.g. /path/to/image.png';
65 77
66 -// Performs text detection on the local file
67 -const [result] = await visionclient.textDetection('/home/ubuntu/a/LINEBOT/photo/Fancy-TWICE.jpg');
68 -const detections = result.textAnnotations;
69 -console.log('Text:');
70 -detections.forEach(text => console.log(text));
71 78
79 +//Initialize the api
80 +
81 +vision.init(jsonfile);
82 +
83 +
84 +
85 +//Build the request payloads
86 +var d = requtil.createRequests().addRequest(
87 +requtil.createRequest('/home/ubuntu/a/LINEBOT/photo/Fancy=TWICE.jpg')
88 +.withFeature('Optical Character Recognition', 3)
89 +.build());
72 //Do query to the api server 90 //Do query to the api server
73 vision.query(d, function(e, r, d){ 91 vision.query(d, function(e, r, d){
74 if(e) console.log('ERROR:', e); 92 if(e) console.log('ERROR:', e);
...@@ -77,6 +95,9 @@ if(e) console.log('ERROR:', e); ...@@ -77,6 +95,9 @@ if(e) console.log('ERROR:', e);
77 95
78 96
79 97
98 +
99 +
100 +
80 app.post('/webhook', line.middleware(config), (req, res) => { 101 app.post('/webhook', line.middleware(config), (req, res) => {
81 Promise 102 Promise
82 .all(req.body.events.map(handleEvent)) 103 .all(req.body.events.map(handleEvent))
...@@ -87,10 +108,18 @@ app.post('/webhook', line.middleware(config), (req, res) => { ...@@ -87,10 +108,18 @@ app.post('/webhook', line.middleware(config), (req, res) => {
87 // event handler 108 // event handler
88 function handleEvent(event) { 109 function handleEvent(event) {
89 console.log(event.message); 110 console.log(event.message);
90 - if (event.type !== 'message' || event.message.type !== 'text') { 111 +
91 - // ignore non-text-message event 112 +
113 + if (event.type !== 'message' && (event.message.type !== 'text'||event.message.type !== 'image')) {
114 + // ignore non-message event
92 return Promise.resolve(null); 115 return Promise.resolve(null);
93 } 116 }
117 + else if(event.type == 'message' && event.message.type == 'image')
118 + {
119 +
120 + }
121 + else if(event.type == 'message' && event.message.type == 'text')
122 + {
94 return new Promise(function(resolve, reject) { 123 return new Promise(function(resolve, reject) {
95 //언어 감지 option 124 //언어 감지 option
96 var detect_options = { 125 var detect_options = {
...@@ -155,4 +184,6 @@ function handleEvent(event) { ...@@ -155,4 +184,6 @@ function handleEvent(event) {
155 184
156 }); 185 });
157 } 186 }
187 + }
188 +
158 189
......