xpebot_ XPEnology Telegram BOT with telepot.pdf [494.73 KB]
Acidpop Software - XPEnology DSM 6.pdf [2.98 MB]
#download station telegram notice.zip [4.05 MB]
  1. 다운로드 스테이션 패키지를 설치하고, 대상폴더 감시 폴더를 각각 지정하자.

<img alt="" src="https://file.podo-dev.com/blogs/images/2019/07/10/origin/IFQZDG181224235516.PNG" style="border-style:solid; border-width:1px; width:720px">

<br/>

  1. GitServer 패키지를 설치하자

<br/>

  1. Python3, Python Module 패키지를 설치하자.

<br/>

  1. 제어판 - 사용자 메뉴로 이동하여 고급탭 최하단의 홈 서비스 활설화 버튼을 체크하자.

<img alt="" src="https://file.podo-dev.com/blogs/images/2019/07/10/origin/LKXK41181224235516.PNG" style="border-style:solid; border-width:1px; width:720px">

<br/>

  1. Putty 로 접속하자

<br/>

  1. ROOT 계정으로 접속 후 VI편집기로 '/etc/passwd' 파일에 다음 부분을 하단과 같이 수정한다.
login as: cglee079
cglee079@125.186.242.83's password:
cglee079@cglee079:~$ sudo -i
Password:
root@cglee079:~# cd /
root@cglee079:/# vi etc/passwd
<br/>
DownloadStation:x:125560:125560::/var/packages/DownloadStation/target:/bin/sh
<br/>

<br/>

  1. 다음 과정을 진행하자.
root@cglee079:/# su - DownloadStation
DownloadStation@cglee079:~$ psql -U DownloadStation -d download
psql (9.3.22)
Type "help" for help.

download=>
<br/>

<br/>

  1. 테이블을 생성하자. ( 하단의 명령문을 입력)
CREATE TABLE btdownload_event(
    task_id           integer   NOT NULL,
    username          character varying(128),
    filename          text,
    status            integer,
    total_size        bigint,
    isread            integer,
    create_time       date
);
CREATE OR REPLACE FUNCTION process_btdownload_event() RETURNS TRIGGER AS $btdownload_event$
    DECLARE
        rec_count integer;
    BEGIN
        IF (TG_OP = 'INSERT') THEN
            RETURN NEW;
        ELSIF (TG_OP = 'UPDATE') THEN
            IF (NEW.status = 2 AND NEW.current_size > 0 AND NEW.total_size > 0 AND NEW.current_rate > 0 ) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 2;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            ELSIF (NEW.status = 5 ) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 5;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            ELSIF (NEW.status = 118) THEN
                UPDATE download_queue SET status = 5, extra_info = '' WHERE task_id = NEW.task_id;
                DELETE FROM task_plugin WHERE task_id = NEW.task_id;
                DELETE FROM thumbnail WHERE task_id = NEW.task_id;
            ELSIF (NEW.status = 123) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 123;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            END IF;
            RETURN NEW;
        ELSIF (TG_OP = 'DELETE') THEN
            IF (OLD.status = 2) THEN
                INSERT INTO btdownload_event VALUES(OLD.task_id, OLD.username, OLD.filename, 999, OLD.total_size, 0, now());
            ELSE
                DELETE FROM btdownload_event WHERE task_id = OLD.task_id;
            END IF;
            RETURN OLD;
        END IF;
        RETURN NULL;
    END;
$btdownload_event$ LANGUAGE plpgsql;
CREATE TRIGGER btdownload_event
AFTER INSERT OR UPDATE OR DELETE ON download_queue
    FOR EACH ROW EXECUTE PROCEDURE process_btdownload_event();

<br/>

  1. ROOT 계정으로 돌아온 후, 본인의 홈 폴더로 이동한다.
 cd volume1/homes/cglee079

<br/>

  1. 다음명령어를 입력한다.
git clone "https://github.com/acidpop/xpebot"

wget "https://bootstrap.pypa.io/get-pip.py"
   
python ./get-pip.py
   
pip install telepot
   
pip install BeautifulSoup
   
pip install psycopg2
    
pip install Pillow
    
pip install psutil
   
cd xpebot
    
cp bot6.sh.ori bot.sh
    
cp xpebot.cfg.ori xpebot.cfg

<br/>

  1. xpebot.cfg 파일을 열어 다음과 같이 수정한다.
1) NOTY_CHAT_ID 는 Downlaod Staion 에서 다운로드 진행 현황 알림을 받을 사용자의 Chat ID 값을 입력한다.

2) DSM_ID 는 자신의 DSM ID 를 입력한다.

3) BOT_TOKEN 은 Telegram 의 Bot Father 에서 /newbot 을 요청하여 BOT 생성 후 자신의 BOT TOKEN 값을 입력한다.

4) VALID_USER 는 인증된 사용자의 chat_id 값을 입력한다. 여러명일 경우 ,(콤마)를 이용해 구분한다.

5) NAVER_API 섹션에 발급 받은 CLIENT_ID_KEY 값과 CLIENT_SECRET_KEY 값을 입력한다.

6) RSS_NEWS 섹션에 보고 싶은 뉴스의 RSS 주소를 입력한다.

7) DATA 섹션에 data.go.kr 에서 발급 받은 서비스 키를 입력한다

<br/>

  1. 다음 명령어를 통해 조작한다.
./bot.sh start

./bot.sh stop

./bot.sh restart

./bot.sh chk

<br/>

0
이전 댓글 보기
등록
TOP