Aria2 + 自動上傳OneDrive 腳本

使用OneDriveUploader自動上傳文件到OneDrive 參考:https://www.moerats.com/archives/1006/
自動上傳腳本保存到/root/.aria2/autoUpload.sh
/root/.aria2/aria2.conf添加
on-download-complete=/root/.aria2/autoUpload.sh

#!/bin/bash
# 自動上傳腳本
GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";  #默認3線程靶累,自行修改,服務器配置不好的話稠腊,不建議太多
Block="20";  #默認分塊20m拧晕,自行修改
RemoteDIR="";  #上傳到Onedrive的路徑屈藐,默認為根目錄兄墅,如果要上傳到MOERATS目錄藻烤,""里面請?zhí)畛蒑OERATS
LocalDIR="/usr/local/Download/";  #Aria2下載目錄梗掰,記得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader";  #上傳的程序完整路徑,默認為本文安裝的目錄
Config="/root/auth.json";  #初始化生成的配置auth.json絕對路徑魏烫,參考第3步驟生成的路徑


if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi

function LoadFile(){
  if [[ ! -e "${Uploader}" ]]; then return; fi
  IFS_BAK=$IFS
  IFS=$'\n'
  tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
  FileLoad="${LocalDIR}${tmpFile}"
  if [[ ! -e "${FileLoad}" ]]; then return; fi
  ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
  if [[ -z "$ItemSize" ]]; then return; fi
  if [[ "$ItemSize" -ge "$MaxSize" ]]; then
    echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
    return;
  fi
  ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;

aria2安裝腳本:

#!/usr/bin/env bash
# 參考https://www.moerats.com/archives/697/
# https://raw.githubusercontent.com/0oVicero0/OneDrive/master/Business/onedrive 客戶端已失效@彼铡!:灏稀蟋!
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#config
filepath=$(cd "$(dirname "$0")"; pwd)
file_1=$(echo -e "${filepath}"|awk -F "$0" '{print $1}')
file="/root/.aria2"
aria2_conf="/root/.aria2/aria2.conf"
aria2_log="/root/.aria2/aria2.log"
Folder="/usr/local/aria2"
aria2c="/usr/bin/aria2c"
Crontab_file="/usr/bin/crontab"
auto_upload="/usr/local/etc/OneDrive"

#fonts color
Green_font="\033[32m" 
Red_font="\033[31m" 
Green_background="\033[42;37m" 
Red_background="\033[41;37m"  
Font="\033[0m"

Info="${Green_font}[信息]${Font}"
Error="${Red_font}[錯誤]${Font}"
Tip="${Green_font}[注意]${Font}"

#檢查ROOT權限
check_root(){
    [[ $EUID != 0 ]] && echo -e "${Error} 當前非ROOT賬號,請切換ROOT在執(zhí)行當前腳本${Font}" && exit 1
}

#檢查系統(tǒng)
check_sys(){
    if [[ -f /etc/redhat-release ]]; then
        release="centos"
    elif cat /etc/issue | grep -q -E -i "debian"; then
        release="debian"
    elif cat /etc/issue | grep -q -E -i "ubuntu"; then
        release="ubuntu"
    elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
        release="centos"
    elif cat /proc/version | grep -q -E -i "debian"; then
        release="debian"
    elif cat /proc/version | grep -q -E -i "ubuntu"; then
        release="ubuntu"
    elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
        release="centos"
    fi
    bit=`uname -m`
}

#安裝依賴環(huán)境
Installation_dependency(){
    if [[ ${release} = "centos" ]]; then
        yum update
        yum -y groupinstall "Development Tools"
        yum install nano -y
        yum install curl -y
    else
        apt-get update
        apt-get install nano build-essential curl -y
    fi
}

#獲得版本號
get_newVer(){
     aria2_new_ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/q3aql/aria2-static-builds/releases | grep -o '"tag_name": ".*"' |head -n 1| sed 's/"http://g;s/v//g' | sed 's/tag_name: //g')
     if [[ -z ${aria2_new_ver} ]]; then
            echo -e "${Error} Aria2 最新版本獲取失敗呐赡,請手動獲取最新版本號[ https://github.com/q3aql/aria2-static-builds/releases ]"
            read -e -p "請輸入版本號 [ 格式如 1.34.0 ] :" aria2_new_ver
            [[ -z "${aria2_new_ver}" ]] && echo "取消..." && exit 1
        else
            echo -e "${Info} 檢測到 Aria2 最新版本為 [ ${aria2_new_ver} ]"
        fi
}

#下載aria2
download_aria2(){
     cd "/usr/local"
     if [[ ${bit} == "x86_64" ]]; then
        bit="64bit"
     elif [[ ${bit} == "i386" || ${bit} == "i686" ]]; then
        bit="32bit"
     else
        bit="arm-rbpi"
     fi
     wget -N --no-check-certificate "https://github.com/q3aql/aria2-static-builds/releases/download/v${aria2_new_ver}/aria2-${aria2_new_ver}-linux-gnu-${bit}-build1.tar.bz2"
     Aria2_Name="aria2-${aria2_new_ver}-linux-gnu-${bit}-build1"
     [[ ! -s "${Aria2_Name}.tar.bz2" ]] && echo -e "${Error} aria2 壓縮包下載失敗 !" && exit 1
     tar jxvf "${Aria2_Name}.tar.bz2"
     [[ ! -e "/usr/local/${Aria2_Name}" ]] && echo -e "${Error} Aria2 解壓失敗 !" && rm -rf "${Aria2_Name}.tar.bz2" && exit 1
     mv "/usr/local/${Aria2_Name}" "${Folder}"
     [[ ! -e "${Folder}" ]] && echo -e "${Error} aria2 文件夾重命名失敗 !" && rm -rf "${Aria2_Name}.tar.bz2" && rm -rf "/usr/local/${Aria2_Name}" && exit 1
     rm -rf "${Aria2_Name}.tar.bz2"
     cd "${Folder}"
     make install
     [[ ! -e ${aria2c} ]] && echo -e "${Error} aria2 主程序安裝失斖丝汀!" && rm -rf "${Folder}" && exit 1
     chmod +x aria2c
}

#下載aria2 配置文件
download_aria2_conf(){
     mkdir "${file}" && cd "${file}"
     wget --no-check-certificate -N "https://67zz.cn/shell/aria2.conf"
     [[ ! -s "aria2.conf" ]] && echo -e "${Error} Aria2 配置文件下載失敗 !" && rm -rf "${file}" && exit 1
     wget --no-check-certificate -N "https://67zz.cn/Aria2/dht.dat"
     [[ ! -s "dht.dat" ]] && echo -e "${Error} Aria2 DHT文件下載失敗 !" && rm -rf "${file}" && exit 1
     echo '' > aria2.session
     stty erase '^H' && read -p "請輸入aria2密鑰:" pass
     sed -i 's/^rpc-secret=67zz.cn/rpc-secret='${pass}'/g' ${aria2_conf}
     
}

#下載服務腳本
service_aria2(){
     if [[ ${release} = "centos" ]]; then
        if ! wget --no-check-certificate https://67zz.cn/shell/aria2_centos -O /etc/init.d/aria2; then
            echo -e "${Error} aria2服務 管理腳本下載失敗 !" && exit 1
        fi
        chmod +x /etc/init.d/aria2
        chkconfig --add aria2
        chkconfig aria2 on
     else
        if ! wget --no-check-certificate https://67zz.cn/shell/aria2_debian -O /etc/init.d/aria2; then
            echo -e "${Error} aria2服務 管理腳本下載失敗 !" && exit 1
        fi
        chmod +x /etc/init.d/aria2
        update-rc.d -f aria2 defaults
     fi
     echo -e "${Info} Aria2服務 管理腳本下載完成 !"
}
read_config(){
    status_type=$1
    if [[ ! -e ${aria2_conf} ]]; then
        if [[ ${status_type} != "un" ]]; then
            echo -e "${Error} Aria2 配置文件不存在 !" && exit 1
        fi
    else
        conf_text=$(cat ${aria2_conf}|grep -v '#')
        aria2_dir=$(echo -e "${conf_text}"|grep "dir="|awk -F "=" '{print $NF}')
        aria2_port=$(echo -e "${conf_text}"|grep "rpc-listen-port="|awk -F "=" '{print $NF}')
        aria2_passwd=$(echo -e "${conf_text}"|grep "rpc-secret="|awk -F "=" '{print $NF}')
    fi
    
}

#配置防火墻
add_iptables(){
    iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${aria2_RPC_port} -j ACCEPT
    iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${aria2_RPC_port} -j ACCEPT
}
del_iptables(){
    iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport ${aria2_port} -j ACCEPT
    iptables -D INPUT -m state --state NEW -m udp -p udp --dport ${aria2_port} -j ACCEPT
}
save_iptables(){
    if [[ ${release} == "centos" ]]; then
        service iptables save
    else
        iptables-save > /etc/iptables.up.rules
    fi
}
set_iptables(){
    if [[ ${release} == "centos" ]]; then
        service iptables save
        chkconfig --level 2345 iptables on
    else
        iptables-save > /etc/iptables.up.rules
        echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' >/etc/network/if-pre-up.d/iptables
        chmod +x /etc/network/if-pre-up.d/iptables
    fi
}


#更新 bt_tracker 服務器
update_bt_tracker(){
    check_installed_status
    check_pid
    [[ ! -z ${PID} ]] && /etc/init.d/aria2 stop
    bt_tracker_list=$(wget -qO- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt |awk NF|sed ":a;N;s/\n/,/g;ta")
    if [ -z "`grep "bt-tracker" ${aria2_conf}`" ]; then
        sed -i '$a bt-tracker='${bt_tracker_list} "${aria2_conf}"
        echo -e "${Info} 添加成功..."
    else
        sed -i "s@bt-tracker.*@bt-tracker=$bt_tracker_list@g" "${aria2_conf}"
        echo -e "${Info} 更新成功..."
    fi
    /etc/init.d/aria2 start
}

#安裝aria2
aria2_install(){
     check_root
     [[ -e ${aria2c} ]] && echo -e "${Error}當前系統(tǒng)已經(jīng)安裝aria2了${Font}" && exit 1
     check_sys
     echo -e "${Info} 安裝依賴..."
     Installation_dependency
     echo -e "${Info} 安裝主程序..."
     get_newVer
     download_aria2
     echo -e "${Info} 下載配置文件..."
     download_aria2_conf
     echo -e "${Info} 安裝服務腳本..."
     service_aria2
     read_config
     aria2_RPC_port=${aria2_port}
     echo -e "${Info} 配置防火墻..."
     set_iptables
     add_iptables
     save_iptables
     echo -e "${Info} 設置自動更新 BT-Tracker服務器..."
     set_bt_tracker
}

#卸載aria2
uninstall_aria2(){
     check_installed_status "un"
     echo " 確定要卸載 aria2? (y/N)"
     echo
     read -e -p "(默認: n):" unyn
     [[ -z ${unyn} ]] && unyn="n"
     if [[ ${unyn} == [Yy] ]]; then
        check_pid
        [[ ! -z $PID ]] && kill -9 ${PID}
        read_config "un"
        del_iptables
        save_iptables
        cd "${Folder}"
        make uninstall
        cd ..
        rm -rf "${aria2c}"
        rm -rf "${Folder}"
        rm -rf "${file}"
        if [[ ${release} = "centos" ]]; then
            chkconfig --del aria2
        else
            update-rc.d -f aria2 remove
        fi
        rm -rf "/etc/init.d/aria2"
        echo && echo "aria2 卸載完成 !" && echo
     else
        echo && echo "卸載已取消..." && echo
     fi
}

#去除防火墻端口
del_iptables(){
    iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport ${aria2_port} -j ACCEPT
    iptables -D INPUT -m state --state NEW -m udp -p udp --dport ${aria2_port} -j ACCEPT
}

#檢測是否安裝
check_installed_status(){
     [[ ! -e ${aria2c} ]] && echo -e "${Error} aria2 沒有安裝链嘀,請檢查 !" && exit 1
     [[ ! -e ${aria2_conf} ]] && echo -e "${Error} aria2 配置文件不存在萌狂,請檢查 !" && [[ $1 != "un" ]] && exit 1
}

#檢測crontab
check_crontab_installed_status(){
    if [[ ! -e ${Crontab_file} ]]; then
        echo -e "${Error} Crontab 沒有安裝,開始安裝..."
        if [[ ${release} == "centos" ]]; then
            yum install crond -y
        else
            apt-get install cron -y
        fi
        if [[ ! -e ${Crontab_file} ]]; then
            echo -e "${Error} Crontab 安裝失敗怀泊,請檢查粥脚!" && exit 1
        else
            echo -e "${Info} Crontab 安裝成功!"
        fi
    fi
}

#檢測PID
check_pid(){
    PID=`ps -ef| grep "aria2c"| grep -v grep| grep -v "aria2.sh"| grep -v "init.d"| grep -v "service"| awk '{print $2}'`
}

#設置自動更新bt-tracker
set_bt_tracker(){
     check_crontab_installed_status
     crontab_update_start
}

crontab_update_start(){
    crontab -l > "$file_1/crontab.bak"
    sed -i "/aria2.sh update-bt-tracker/d" "$file_1/crontab.bak"
    echo -e "\n0 3 * * 1 /bin/bash $file_1/aria2.sh update-bt-tracker" >> "$file_1/crontab.bak"
    crontab "$file_1/crontab.bak"
    rm -f "$file_1/crontab.bak"
    cron_config=$(crontab -l | grep "aria2.sh update-bt-tracker")
    if [[ -z ${cron_config} ]]; then
        echo -e "${Error} Aria2 自動更新 BT-Tracker服務器 開啟失敗 !" 
        start_aria2
    else
        echo -e "${Info} Aria2 自動更新 BT-Tracker服務器 開啟成功 !"
        Update_bt_tracker_cron
    fi
}

Update_bt_tracker_cron(){
    check_installed_status
    check_pid
    [[ ! -z ${PID} ]] && /etc/init.d/aria2 stop
    bt_tracker_list=$(wget -qO- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt |awk NF|sed ":a;N;s/\n/,/g;ta")
    if [ -z "`grep "bt-tracker" ${aria2_conf}`" ]; then
        sed -i '$a bt-tracker='${bt_tracker_list} "${aria2_conf}"
        echo -e "${Info} 添加成功..."
    else
        sed -i "s@bt-tracker.*@bt-tracker=$bt_tracker_list@g" "${aria2_conf}"
        echo -e "${Info} 更新成功..."
    fi
    /etc/init.d/aria2 start
}

#啟動
start_aria2(){
    check_installed_status
    check_pid
    [[ ! -z ${PID} ]] && echo -e "${Error} Aria2 正在運行包个,請檢查 !" && exit 1
    /etc/init.d/aria2 start
}

#停止
stop_aria2(){
    check_installed_status
    check_pid
    [[ -z ${PID} ]] && echo -e "${Error} Aria2 沒有運行,請檢查 !" && exit 1
    /etc/init.d/aria2 stop
}

#重啟
restart_aria2(){
    check_installed_status
    check_pid
    [[ ! -z ${PID} ]] && /etc/init.d/aria2 stop
    /etc/init.d/aria2 start
}

#安裝上傳腳本
install_autoUpload(){
     [[ -e ${auto_upload} ]] && echo -e "${Error} 自動上傳腳本已經(jīng)安裝冤留,告辭!" && exit 1
     echo -e "${Info}下載安裝自動上傳腳本..."
     mkdir -p ${auto_upload}
     cd ${auto_upload}
     wget --no-check-certificate -q -O json-parser "https://raw.githubusercontent.com/0oVicero0/OneDrive/master/Business/json-parser"
     wget --no-check-certificate -q -O onedrive "https://raw.githubusercontent.com/0oVicero0/OneDrive/master/Business/onedrive"
     wget --no-check-certificate -q -O onedrive-d "https://raw.githubusercontent.com/0oVicero0/OneDrive/master/Business/onedrive-d"
     wget --no-check-certificate -q -O onedrive-authorize "https://67zz.cn/shell/onedrive-authorize"
     wget --no-check-certificate -q -O onedrive-base "https://raw.githubusercontent.com/0oVicero0/OneDrive/master/Business/onedrive-base"
     wget --no-check-certificate -q -O onedrive.cfg "https://67zz.cn/shell/onedrive.cfg"
     chmod -R a+x ${auto_upload}
     ln -sf ${auto_upload}/onedrive /usr/local/bin/
     ln -sf ${auto_upload}/onedrive-d /usr/local/bin/
     rm -rf $(basename "$0")
     wget -P ${file}  --no-check-certificate -N "https://67zz.cn/shell/autoUpload.sh"
     sed -i '$a on-download-complete=/root/.aria2/autoUpload.sh' "${aria2_conf}"
     chmod 777 ${file}/*
     restart_aria2
     echo -e "${Green_font}安裝完成碧囊,復制鏈接瀏覽器打開準備授權!"
     onedrive -a #去授權
}

#卸載上傳腳本
uninstall_autoUpload(){
     [[ ! -e ${auto_upload} ]] && echo -e "${Error} 自動上傳腳本未安裝!" && exit 1
     rm -rf ${auto_upload}
     rm ${file}/autoUpload.sh
     restart_aria2
     echo -e "${Info} 上傳腳本卸載完成"
}

#重新認證
goto_auth(){
     [[ ! -e ${auto_upload} ]] && echo -e "${Error} 自動上傳腳本未安裝,認證個雞毛啊!" && exit 1
     onedrive -a #去認證
}

action=$1
if [[ "${action}" == "update-bt-tracker" ]]; then
    Update_bt_tracker_cron
else echo && echo -e "
# ====================================================
#   ${Green_font} aria2+自動上傳OneDrive 一鍵腳本${Font}
#   ${Green_font} 站在巨人肩膀上(chaoxi)二次開發(fā) ${Font}
#   ${Green_font} 作者:Eleven ${Font}
#   ${Green_font} 網(wǎng)站:https://67zz.cn ${Font}
# ====================================================

 ${Green_font} 1.${Font} 安裝 aria2
 ${Green_font} 2.${Font} 卸載 aria2
 ${Green_font} 3.${Font} 重啟 aria2
 ${Green_font} 4.${Font} 停止 aria2
 ${Green_font} 5.${Font} 安裝 自動上傳腳本
 ${Green_font} 6.${Font} 卸載 自動上傳腳本
 ${Green_font} 7.${Font} 上傳腳本OneDrive 重新授權
"
read -e -p " 請輸入數(shù)字 [1-7]:" num

case "$num" in
    1)
     aria2_install  #安裝
    ;;
    2)
     uninstall_aria2  #卸載
    ;;
    3)
     restart_aria2   #重啟
    ;;
    4)
     stop_aria2 #停止
    ;;
    5)
     install_autoUpload #安裝上傳腳本
    ;;
    6)
     uninstall_autoUpload #卸載自動上傳腳本
    ;;
    7)
     goto_auth #安裝上傳腳本
    ;;
    *)
     echo "請輸入正確數(shù)字 [1-7]"
    ;;
esac
fi
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市纤怒,隨后出現(xiàn)的幾起案子糯而,更是在濱河造成了極大的恐慌,老刑警劉巖泊窘,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熄驼,死亡現(xiàn)場離奇詭異,居然都是意外死亡烘豹,警方通過查閱死者的電腦和手機瓜贾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來携悯,“玉大人祭芦,你說我怎么就攤上這事°竟恚” “怎么了龟劲?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵胃夏,是天一觀的道長。 經(jīng)常有香客問我昌跌,道長仰禀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任蚕愤,我火速辦了婚禮答恶,結果婚禮上,老公的妹妹穿的比我還像新娘审胸。我一直安慰自己亥宿,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布砂沛。 她就那樣靜靜地躺著烫扼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碍庵。 梳的紋絲不亂的頭發(fā)上映企,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音静浴,去河邊找鬼堰氓。 笑死,一個胖子當著我的面吹牛苹享,可吹牛的內容都是我干的双絮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼得问,長吁一口氣:“原來是場噩夢啊……” “哼囤攀!你這毒婦竟也來了?” 一聲冷哼從身側響起宫纬,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤焚挠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后漓骚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝌衔,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年蝌蹂,在試婚紗的時候發(fā)現(xiàn)自己被綠了噩斟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡孤个,死狀恐怖亩冬,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤硅急,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布覆享,位于F島的核電站,受9級特大地震影響营袜,放射性物質發(fā)生泄漏撒顿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一荚板、第九天 我趴在偏房一處隱蔽的房頂上張望凤壁。 院中可真熱鬧,春花似錦跪另、人聲如沸拧抖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唧席。三九已至,卻和暖如春嘲驾,著一層夾襖步出監(jiān)牢的瞬間淌哟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人球恤。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像掉弛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喂走,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容