订阅6Vhao电影

订阅6Vhao电影网的最新电影,将最新电影会用邮件和微信形式发送给你,期待你喜欢哦。

目前為 2018-07-30 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         订阅6Vhao电影
// @namespace    [url=mailto:[email protected]][email protected][/url]
// @version      0.1
// @description  订阅6Vhao电影网的最新电影,将最新电影会用邮件和微信形式发送给你,期待你喜欢哦。
// @author       gdky005
// @match        *://www.hao6v.com/*
// @require      https://unpkg.com/vue/dist/vue.js
// @require      https://unpkg.com/element-ui/lib/index.js
// @require      https://code.jquery.com/jquery-3.3.1.min.js
// @grant        GM_addStyle
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @connect      zkteam.cc
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...

    var header_link = '<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">';
    //将以上拼接的html代码插入到网页里的ul标签中
    var header_link_tag = $("head");
    if (header_link_tag) {
        header_link_tag.append(header_link);
    }




    var vue_code = '<div id="app" style="text-align:center">'

    vue_code+='<el-popover placement="top-start" title="" width="100" trigger="hover" content="登录以后将获得邮件和微信 更新 提醒哦!">'
    vue_code+='  <el-button type="primary" size="medium" slot="reference" @click="subscribeBtn">订阅按钮</el-button>'
    vue_code+='</el-popover>'
    vue_code+=''
    vue_code+='<el-dialog title="订阅" width="40%" :visible.sync="subDialogState" center>'
    vue_code+='  <div style="text-align: left">'
    vue_code+='    <span style="font-weight: bold"> hi, </span>'
    vue_code+='    <p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;font-weight: bold"> {{ userInfo.user_name }} </span>, 你要订阅的信息如下:</p>'
    vue_code+='    <div style="background: rgba(191,157,42,0.29); padding: 10px; margin: 10px">'
    vue_code+='      <el-input :placeholder="pid" type="text" :disabled="false" size="small">'
    vue_code+='        <template slot="prepend"><span>ID:</span></template>'
    vue_code+='      </el-input>'
    vue_code+=''
    vue_code+='      <el-input :placeholder="name" type="text" :disabled="false" size="small">'
    vue_code+='        <template slot="prepend">影片:</template>'
    vue_code+='      </el-input>'
    vue_code+=''
    vue_code+='      <el-input :placeholder="url" type="text" :disabled="false" size="small">'
    vue_code+='        <template slot="prepend">网址:</template>'
    vue_code+='      </el-input>'
    vue_code+='    </div>'
    vue_code+='    <p style="text-align: center; margin-top: 15px"><el-button type="text" @click="quitAccount">退出当前帐号</el-button></p>'
    vue_code+='  </div>'
    vue_code+='  <span slot="footer" class="dialog-footer">'
    vue_code+='     <el-button @click="cancelSub">取 消</el-button>'
    vue_code+='     <el-button type="primary" @click="subContent" :loading="subContentBtnState">确 定</el-button>'
    vue_code+='    </span>'
    vue_code+='</el-dialog>'
    vue_code+=''
    vue_code+=''
    vue_code+='<el-dialog'
    vue_code+='  title="登录提醒"'
    vue_code+='  :visible.sync="loginDialogState"'
    vue_code+='  width="40%" center>'
    vue_code+=''
    vue_code+='  <el-dialog'
    vue_code+='    width="40%"'
    vue_code+='    title="请先注册一个账号吧"'
    vue_code+='    :visible.sync="innerVisible"'
    vue_code+='    append-to-body>'
    vue_code+=''
    vue_code+='    <el-form :model="registerUserInfo" :rules="registerUserInfoRules" ref="registerUserInfo">'
    vue_code+=''
    vue_code+='      <el-form-item prop="r_name">'
    vue_code+='        <el-input placeholder="您的用户名或者邮箱" type="text" v-model="registerUserInfo.r_name" clearable>'
    vue_code+='          <template slot="prepend">用 户 名:</template>'
    vue_code+='        </el-input>'
    vue_code+='      </el-form-item>'
    vue_code+=''
    vue_code+='      <el-form-item prop="r_password">'
    vue_code+='        <el-input placeholder="密码" type="password" v-model="registerUserInfo.r_password" clearable>-->'
    vue_code+='          <template slot="prepend">密  码:</template>'
    vue_code+='        </el-input>'
    vue_code+='      </el-form-item>'
    vue_code+=''
    vue_code+='      <el-form-item prop="r_confirm_password">'
    vue_code+='        <el-input placeholder="确认密码" type="password" v-model="registerUserInfo.r_confirm_password" clearable>'
    vue_code+='          <template slot="prepend">确认密码:</template>'
    vue_code+='        </el-input>'
    vue_code+='      </el-form-item>'
    vue_code+=''
    vue_code+='      <el-form-item prop="r_email">'
    vue_code+='        <el-input placeholder="邮箱地址" type="email" v-model="registerUserInfo.r_email" clearable>'
    vue_code+='          <template slot="prepend">邮箱地址:</template>'
    vue_code+='        </el-input>'
    vue_code+='      </el-form-item>'
    vue_code+=''
    vue_code+='    </el-form>'
    vue_code+=''
    vue_code+='    <span slot="footer" class="dialog-footer">'
    vue_code+='    <el-button @click="register(true)">取消</el-button>'
    vue_code+='    <el-button style="text-align: center;" type="primary" @click="register(false)"'
    vue_code+='               :disabled="registerBtnState">确定</el-button>'
    vue_code+='  </span>'
    vue_code+='  </el-dialog>'
    vue_code+=''
    vue_code+='  <el-form :model="userInfo" :rules="registerUserInfoRules" ref="userInfo">'
    vue_code+='    <el-form-item prop="user_name">'
    vue_code+='      <el-input placeholder="您的用户名或者邮箱" type="text" v-model="userInfo.user_name" clearable>'
    vue_code+='        <template slot="prepend">用 户 名:</template>'
    vue_code+='      </el-input>'
    vue_code+='    </el-form-item>'
    vue_code+=''
    vue_code+='    <el-form-item prop="user_password">'
    vue_code+='      <el-input placeholder="密码" type="password" v-model="userInfo.user_password" clearable>'
    vue_code+='        <template slot="prepend">密  码:</template>'
    vue_code+='      </el-input>'
    vue_code+='    </el-form-item>'
    vue_code+='  </el-form>'
    vue_code+=''
    vue_code+='  <div style="text-align: center">'
    vue_code+='    <el-button type="text" size="mini">如有任何疑问请添加微信:gdky005</el-button>'
    vue_code+='  </div>'
    vue_code+=''
    vue_code+='  <span slot="footer" class="dialog-footer">'
    vue_code+='  <el-button @click="innerVisible = true">注册</el-button>'
    vue_code+='  <el-button style="text-align: center;" type="primary" @click="login">登录</el-button>'
    vue_code+='</span>'
    vue_code+=''
    vue_code+='</el-dialog>'



    vue_code+='</div>'


    //var ul_tag = $("div.box");
    var ul_tag = $("h1");
    if (ul_tag) {
        ul_tag.append(vue_code);
    };



    new Vue({
        el: '#app',
        data() {

            var validateUserName = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请输入6位以上的用户名'));
                } else {
                    // if (this.registerUserInfo.r_name !== '') {
                    //   this.$refs.registerUserInfo.validateField('r_name');
                    // }
                    callback();
                }
            };

            var validatePass = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请输入密码'));
                } else {
                    // if (this.registerUserInfo.r_password !== '') {
                    //   this.$refs.registerUserInfo.validateField('r_password');
                    // }
                    callback();
                }
            };

            var validatePass2 = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请再次输入密码'));
                } else if (value !== this.registerUserInfo.r_password) {
                    callback(new Error('两次输入密码不一致!'));
                } else {
                    callback();
                }
            };

            return {

                // 订阅按钮的状态
                subDialogState: false,

                // 订阅对话框中的确定按钮的 loading 的状态
                subContentBtnState: false,

                // 用户登录的状态
                userIsLogin: false,

                // 用户注册信息
                registerUserInfo: {
                    r_name: '',
                    r_password: '',
                    r_confirm_password: '',
                    r_email: '',
                },

                // 密码校验规则
                registerUserInfoRules: {

                    user_name: [
                        {validator: validateUserName, trigger: 'blur'}
                    ],
                    user_password: [
                        {validator: validatePass, trigger: 'blur'}
                    ],

                    r_name: [
                        {validator: validateUserName, trigger: 'blur'}
                    ],
                    r_password: [
                        {validator: validatePass, trigger: 'blur'}
                    ],
                    r_confirm_password: [
                        {validator: validatePass2, trigger: 'blur'}
                    ],
                    r_email: [
                        {required: true, message: '请输入邮箱地址', trigger: 'blur'},
                        {type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']}
                    ]
                },

                //登录信息
                userInfo: {
                    user_name: '',
                    user_password: '',
                    user_email: '',
                    user_is_active: '',
                },

                //登录框状态
                loginDialogState: false,
                innerVisible: false,

                //状态
                registerBtnState: true,


                // 订阅信息
                message: "",
                dialogText: "是否真的要订阅?",
                dialogVisible: false,

                // 影片订阅信息
                name: '',
                pid: '',
                url: '',
            };
        },
        methods: {
            login() {

                var name = this.userInfo.user_name;
                var password = this.userInfo.user_password;


                this.$refs.userInfo.validate((valid) => {
                    if (valid) {
                        this.loginDialogState = false;
                        this.innerVisible = false;

                        var that = this;

                        var formData = new FormData();
                        formData.append("account", name);
                        formData.append("password", password);

                        GM_xmlhttpRequest({
                            method: 'POST',
                            url: "http://zkteam.cc/Subscribe/login/",
                            data: formData,
                            onload: function (result) {

                                that.subContentBtnState = false;

                                var responseContent = result.responseText;
                                console.log(responseContent);

                                // {"code": 0, "message": "ok", "result": {"username": "a", "email": "[email protected]", "is_active": true}}
                                var objs = JSON.parse(responseContent);
                                var code = objs['code'];
                                var message = objs['message'];
                                var resultJson = objs['result'];

                                var l_name = resultJson['username'];
                                var l_email = resultJson['email'];
                                var l_is_active = resultJson['is_active'];

                                console.log(code + "," + message + "," + l_name);

                                if (code === 0) {
                                    that.$notify({
                                        title: '登录成功',
                                        message: "当前登录用户是:" + name,
                                        type: 'success'
                                    });

                                    that.userIsLogin = true;

                                    GM_setValue("name", l_name);
                                    GM_setValue("email", l_email);
                                    GM_setValue("is_active", l_is_active);

                                } else {
                                    that.$notify({
                                        title: '登录失败!',
                                        message: "。。。",
                                        type: 'error'
                                    });
                                    that.userIsLogin = false;
                                }

                                that.subDialogState = false;
                            }
                        });


                    } else {
                        this.$message.error('请先根据页面提示修复错误');
                        return true;
                    }
                });
            },

            register(isCancel) {
                if (isCancel) {
                    this.$notify({
                        title: '取消注册',
                        message: '你已经取消注册了',
                        type: 'warning'
                    });
                    this.innerVisible = false;
                    return;
                }

                var name = this.registerUserInfo.r_name;
                var password = this.registerUserInfo.r_password;
                var confirm_password = this.registerUserInfo.r_confirm_password;
                var email = this.registerUserInfo.r_email;

                var log = name + ", ";
                log += password + ", ";
                log += confirm_password + ", ";
                log += email + ", ";


                this.$refs.registerUserInfo.validate((valid) => {
                    if (valid) {
                        this.innerVisible = false;
                        this.userIsLogin = false;

                        var that = this;

                        var formData = new FormData();
                        formData.append("account", name);
                        formData.append("password", password);
                        formData.append("password2", confirm_password);
                        formData.append("email", email);

                        GM_xmlhttpRequest({
                            method: 'POST',
                            url: "http://zkteam.cc/Subscribe/register/",
                            data: formData,
                            onload: function (result) {

                                that.subContentBtnState = false;

                                var responseContent = result.responseText;
                                console.log(responseContent);

                                var objs = JSON.parse(responseContent);
                                var code = objs['code'];
                                var message = objs['message'];

                                console.log(code + "," + message);

                                if (code === 0) {
                                    that.$notify({
                                        title: '注册成功',
                                        message: "您的账户名是:" + name,
                                        type: 'success'
                                    });
                                } else {
                                    that.$notify({
                                        title: '注册失败!',
                                        message: "。。。",
                                        type: 'error'
                                    });
                                }

                                that.subDialogState = false;
                            }
                        });

                    } else {
                        this.$message.error('请先根据页面提示修复错误');
                        return true;
                    }
                });
            },

            handleClose(done) {
                this.$confirm('确认关闭?')
                    .then(_ => {
                    done();
                }).catch(_ => {
                });
            },

            cancelSub() {
                this.subDialogState = false;
                this.$message({
                    message: '取消订阅',
                    type: 'warning'
                });
            },

            subscribeBtn() {
                var nameStr = GM_getValue("name", "");
                var emailStr = GM_getValue("email", "");
                var isActiveStr = GM_getValue("is_active", "");

                console.log("存储的值是:" + nameStr + ", " + emailStr + ", " + isActiveStr);

                if (nameStr && emailStr) {
                    this.subDialogState = true;
                    this.userIsLogin = true;
                    this.userInfo.user_name = nameStr;
                    this.userInfo.user_email = emailStr;
                    this.userInfo.user_is_active = isActiveStr;
                }

                if (this.userIsLogin) {
                    this.$message("你已经登录啦!");
                    this.subDialogState = true;
                } else {
                    this.$message("你还没登录呢!请先登录");
                    this.loginDialogState = true;
                }

                // return;


                var url = document.URL;
                var name = $("h1")[0].innerText;
                var pid = url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("."));

                name = name.substring(name.lastIndexOf("《") + 1, name.lastIndexOf("》"));

                var msg = "url 是:" + url + ",\n名字:" + name + ",\nid:" + pid;

                console.log(msg);
                this.dialogText = msg;

                this.pid = pid;
                this.name = name;
                this.url = url;
            },

            subContent() {
                // 订阅成功后 可以请求数据, 然后 确定按钮 转圈,成功和失败后都给予提示。
                // this.subDialogState = false;
                this.subContentBtnState = true;

                var params = 'pid=' + this.pid;
                params += '&name=' + this.name;
                params += '&url=' + this.url;

                var that = this;

                GM_xmlhttpRequest({
                    method: 'GET',
                    url: "http://zkteam.cc/Subscribe/add?" + params,
                    onload: function (result) {
                        that.subContentBtnState = false;

                        var responseContent = result.responseText;
                        console.log(responseContent);

                        var objs = JSON.parse(responseContent);
                        var code = objs['code'];
                        var message = objs['message'];

                        console.log(code + "," + message);

                        if (code === 0) {
                            that.$message({
                                message: '订阅成功!',
                                type: 'success'
                            });
                        } else {
                            that.$message({
                                showClose: true,
                                message: '订阅失败!',
                                type: 'error'
                            });
                        }

                        that.subDialogState = false;
                    }
                });

            },

            requestData() {
                this.subDialogState = false;

                var params = 'pid=' + this.pid;
                params += '&name=' + this.name;
                params += '&url=' + this.url;

                var that = this;

                GM_xmlhttpRequest({
                    method: 'GET',
                    url: "http://zkteam.cc/Subscribe/add?" + params,
                    onload: function (result) {
                        //eval(result.responseText);
                        console.log(result.responseText);

                        that.$message({
                            message: '订阅成功!',
                            type: 'success'
                        });
                    }
                });

            },
            quitAccount() {
                var that = this;

                GM_xmlhttpRequest({
                    method: 'GET',
                    url: "http://zkteam.cc/Subscribe/logout",
                    onload: function (result) {
                        that.subContentBtnState = false;

                        var responseContent = result.responseText;
                        console.log(responseContent);

                        var objs = JSON.parse(responseContent);
                        var code = objs['code'];
                        var message = objs['message'];

                        console.log(code + "," + message);

                        if (code === 0) {
                            that.userIsLogin = false;

                            GM_setValue("name", "");
                            GM_setValue("email", "");
                            GM_setValue("is_active", "");

                            that.$message({
                                message: '退出登录成功!',
                                type: 'success'
                            });
                        } else {
                            that.$message({
                                showClose: true,
                                message: '退出登录失败!',
                                type: 'error'
                            });
                        }
                        that.subDialogState = false;
                    }
                });

            },
        },
        watch: {
            registerUserInfo: { // 这监听对象值的改变 和上面的不一样。
                handler: function (curVal, oldVal) {
                    var registerUserInfo = this.registerUserInfo;

                    if (!!registerUserInfo.r_name &&
                        !!registerUserInfo.r_password &&
                        !!registerUserInfo.r_confirm_password &&
                        !!registerUserInfo.r_email) {
                        this.registerBtnState = false;
                    } else {
                        this.registerBtnState = true;
                    }
                },
                deep: true,
                // immediate: true
            },
        },
    })

    //var down_btn_html = '<button>订阅</button>';
    //将以上拼接的html代码插入到网页里的ul标签中
    //var ul_tag = $("div.info>h1");
    //if (ul_tag) {
    //   ul_tag.append(down_btn_html);
    //};
})();