신일섭

js구조 세분화

var express = require('express');
const request = require('request');
//--------------- Line messanger modules -------------------
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TARGET_URL_2 = 'https://api.line.me/v2/bot/message/push'
var USER_ID = ' ';
const TOKEN = 'LFi+FvOOFOydz0EKN22WRnQyiilnEiyxe2HVV1WrI54Jnght6+Gga07m7pxqSQltBJG2AV2lYnYOAk4TqxzZFKW9R36CJcQs+NaNEiNKJtgBfT/t3tEta/J6GtXxGz/DqdHnfZqSSfLFpXzun/ITTwdB04t89/1O/w1cDnyilFU='
const token = require('./config/key');
const TOKEN = token.token; // 사용자 토큰 값
//----------------------------------------------------------
//--------------- Translating moudules ----------------------
......@@ -22,19 +23,13 @@ var puppeteer = require('puppeteer');
var gmarket = require('./crawling/gmarket');
var coupang = require('./crawling/coupang');
var auction = require('./crawling/auction');
var route = require('./route/route');
var shopping = 0; // in shopping menu identifier 0 = idle, 1 = shop selecting, 2 = select complete, 3 = shop method selecting
var shop_select = undefined // shopping-site identifier
var method_action = 0; // typing count;
var user_info = new Array(); // 유저 정보 저장용
//------------------------------------------
//----------------low db-----------------------------------
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('db.json');
const db = low(adapter);
const shortid = require('shortid');
//---------------------------------------------------------
const fs = require('fs');
const path = require('path');
......@@ -67,16 +62,10 @@ app.post('/hook', async function (req, res) {
console.log('[request message]', eventObj.message);
//----------------------------------------------------------------------------
//--------------- Cancel ----------------------------------------------
if(message.text.includes('/취소')){
replying(eventObj.replyToken, '진행중인 기능 및 메뉴를 종료합니다.');
shopping = 0;
shop_select = undefined
trans_counter = 0;
method_action = 0;
user_info.length = 0;
}
//---------------------------------------------------------------------
// 취소판정
route.cancel(message.text, eventObj.replyToken);
// 쇼핑몰 선택
route.shoppingroute(message.text, eventObj.source.userId, eventObj.replyToken);
//----------------------- Translation which includes language-selector -----------------------------------------------
if(eventObj.message.text.includes('/번역')){
......@@ -88,59 +77,7 @@ app.post('/hook', async function (req, res) {
}
//--------------------------------------------------------------------------------------------------------------------
//---------------------- linking Shoppingcart crawler ----------------------------------------------------------------
if(message.text == '/쇼핑' ){
replying(eventObj.replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트를 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.');
shopping = 1; // 다음 메세지에 선택하지 못할 경우 0으로 되돌릴 필요가있음
}
if(shopping == 1){
if(message.text == '/g마켓'){
replying(eventObj.replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화\n/장바구니조회\n/장바구니추가\n/장바구니삭제');
shopping = 2; shop_select = 'g마켓';
}else if(message.text == '/옥션'){
}else if(message.text == '쿠팡'){
}
}
if(shopping == 2 || shopping == 3){
if(shop_select=='g마켓'){
if(shopping == 2 && message.text == '/장바구니동기화')
{
replying(eventObj.replyToken, '====장바구니동기화====\n\n장바구니를 동기화 하기 위해 쇼핑몰에 연결합니다.\n\n아이디와 패스워드를 입력해 주세요:');
method_action = 2;
shopping = 3;
}
else if(shopping == 3 && method_action != 0)
{
replying(eventObj.replyToken, '===아이디/패스워드 입력중===');
user_info[method_action] = message.text; // 아이디 패스워드를 user_info[2], user_info[1]에 저장
method_action--;
if(method_action==0){
//장바구니 크롤링하는 함수
USER_ID = eventObj.source.userId; // 상대방 ID 획득
await gmarket.gmarket_c(USER_ID, user_info[2], user_info[1]);
// replying(eventObj.replyToken, '리스트를 출력중입니다... 출력전까지 기다려주세요\n\n\n/장바구니동기화\n장바구니조회\n/장바구니추가\n/장바구니삭제');
shopping = 2;
}
}
if(message.text == '/장바구니조회')
{
}
if(message.text == '/장바구니추가')
{
}
if(message.text == '/장바구니삭제')
{
}
}
}
//--------------------------------------------------------------------------------------------------------------------
res.sendStatus(200);
......
// Line Massenger Token Variables
// 원작자 이외에 이용시 키 값을 바꿔줄것
const token = 'LFi+FvOOFOydz0EKN22WRnQyiilnEiyxe2HVV1WrI54Jnght6+Gga07m7pxqSQltBJG2AV2lYnYOAk4TqxzZFKW9R36CJcQs+NaNEiNKJtgBfT/t3tEta/J6GtXxGz/DqdHnfZqSSfLFpXzun/ITTwdB04t89/1O/w1cDnyilFU='
module.exports.token = token;
\ No newline at end of file
......@@ -11,7 +11,8 @@ const bodyParser = require('body-parser');
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TARGET_URL_2 = 'https://api.line.me/v2/bot/message/push'
var USER_ID = ' ';
const TOKEN = 'LFi+FvOOFOydz0EKN22WRnQyiilnEiyxe2HVV1WrI54Jnght6+Gga07m7pxqSQltBJG2AV2lYnYOAk4TqxzZFKW9R36CJcQs+NaNEiNKJtgBfT/t3tEta/J6GtXxGz/DqdHnfZqSSfLFpXzun/ITTwdB04t89/1O/w1cDnyilFU='
const token = require('../config/key');
const TOKEN = token.token; //사용자 토큰
//----------------------------------------------------------
//----------------low db-----------------------------------
......@@ -21,8 +22,6 @@ const adapter = new FileSync('db.json');
const db = low(adapter);
//---------------------------------------------------------
//gmarket_c();
// Gmarket Cart Crawling
async function gmarket_c(user_id, g_id, g_pw){
......@@ -69,6 +68,7 @@ async function gmarket_c(user_id, g_id, g_pw){
await browser.close();
}
......
//----------------low db-----------------------------------
const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('db.json');
const db = low(adapter);
//---------------------------------------------------------
\ No newline at end of file
// 쇼핑사이트 분기점 제공용
const request = require('request');
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
//--------------- Line messanger modules -------------------
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TARGET_URL_2 = 'https://api.line.me/v2/bot/message/push'
var USER_ID = ' '; // pushing 용 유저아이디
const token = require('../config/key');
const TOKEN = token.token; //사용자 토큰
//----------------------------------------------------------
// ---------- Shopping modules -------------
var gmarket = require('../crawling/gmarket');
var coupang = require('../crawling/coupang');
var auction = require('../crawling/auction');
var shopping = 0; // in shopping menu identifier 0 = idle, 1 = shop selecting, 2 = select complete, 3 = shop method selecting
var shop_select = undefined // shopping-site identifier
var method_action = 0; // typing count;
var user_info = new Array(); // 유저 정보 저장용
//------------------------------------------
// ========================================= 쇼핑몰 연결 중계 =========================================
async function shoppingroute(user_message, user_id, replyToken){
USER_ID = user_id;
if(user_message == '/쇼핑' ){
replying(replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트를 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.');
shopping = 1; // 다음 메세지에 선택하지 못할 경우 0으로 되돌릴 필요가있음
}
if(shopping == 1){
if(user_message == '/g마켓'){
replying(replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화\n/장바구니조회\n/장바구니추가\n/장바구니삭제');
shopping = 2; shop_select = 'g마켓';
}else if(user_message == '/옥션'){
}else if(user_message == '쿠팡'){
}
}
if(shopping == 2 || shopping == 3){
if(shop_select=='g마켓'){
if(shopping == 2 && user_message == '/장바구니동기화')
{
replying(replyToken, '====장바구니동기화====\n\n장바구니를 동기화 하기 위해 쇼핑몰에 연결합니다.\n\n아이디와 패스워드를 입력해 주세요:');
method_action = 2;
shopping = 3;
}
else if(shopping == 3 && method_action != 0)
{
replying(replyToken, '===아이디/패스워드 입력중===');
user_info[method_action] = user_message; // 아이디 패스워드를 user_info[2], user_info[1]에 저장
method_action--;
if(method_action==0){
//장바구니 크롤링하는 함수
USER_ID = user_id; // 상대방 ID 획득
await gmarket.gmarket_c(USER_ID, user_info[2], user_info[1]);
// replying(eventObj.replyToken, '리스트를 출력중입니다... 출력전까지 기다려주세요\n\n\n/장바구니동기화\n장바구니조회\n/장바구니추가\n/장바구니삭제');
shopping = 2;
}
}
if(user_message == '/장바구니조회')
{
}
if(user_message == '/장바구니추가')
{
}
if(user_message == '/장바구니삭제')
{
}
}
}
}
// ============================ /취소 입력시 =================================
async function cancel(user_message,replyToken){
if(user_message.includes('/취소')){
replying(replyToken, '진행중인 기능 및 메뉴를 종료합니다.');
shopping = 0;
shop_select = undefined
method_action = 0;
user_info.length = 0;
}
}
//================== Just replying specific messages needed ===================================
async function replying(replyToken, sp_message){ // sp_message is message(string) that depends on the situation that user selects
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":replyToken,
"messages":[
{
"type":"text",
"text":sp_message // replying message
}
]
}
},(error, response, body) => {
// console.log(body)
});
}
//================== Just pushing specific messages needed ===================================
async function pushing(sp_message){ //push function
request.post(
{
url: TARGET_URL_2,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"to": `${USER_ID}`,
"messages":[
{
"type": "text",
"text": sp_message // replying message
}
]
}
},(error, response, body) => {
//console.log(body)
});
}
module.exports.shoppingroute = shoppingroute;
module.exports.cancel = cancel;