爱意满满的作品展示区。
Andy1999

大家还记得半年前的 wwurl 么,现在已经完成了

  •  
  •   Andy1999 · Sep 18, 2015 via iPhone · 8072 views
    This topic created in 4066 days ago, the information mentioned may be changed or developed.
    半年前,我们团队 6 个人要打造一个新的短链服务。然而半年之中,离去的离去,弃坑的弃坑,留下一个半残品。
    最近正好有空,就基于 PHP 写了款很简单的短链,欢迎大家来指出 bug 。
    PHP+MySQL+Nginx
    http://qaq.cat
    未来会加入更多域名的支持
    例如输入长链接,随机返回短链而不是现在单一的 QAQ.cat
    未来也会更加人性化自动补齐 http ,而不需要手动输入
    未来很美好,愿我还能看到
    74 replies  •  2015-09-21 11:33:01 +08:00
    vpncup
    vpncup
    Sep 18, 2015 via iPhone
    1
    喵 @@@@@
    yexm0
    yexm0
    Sep 18, 2015
    2
    现在的高中生都那么厉害了么.....
    icreeper
    icreeper
    Sep 18, 2015
    5
    我之前无聊弄了个 http://qwq.pw 现在已经基本被我外坏了 233
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    6
    @cevincheung 正则写错了,等下改
    nowbear
    nowbear
    Sep 18, 2015
    7
    404
    qiayue
    qiayue
    Sep 18, 2015
    8
    loveyu
    loveyu
    Sep 18, 2015
    9
    http://qaq.cat/2B
    这个有点巧啊
    raincious
    raincious
    Sep 18, 2015❤️1
    10
    一次 Click 一次请求。楼主,请问你要尝试下我的这个库么?可以用`Block`模式来阻止用户通过 Click 的方式重复提交无效内容,直到 Callback 运行结束。

    https://github.com/raincious/jQueue

    npm install jqu

    https://www.npmjs.com/package/jqu
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    11
    @cevincheung
    @nowbear
    @loveyu Fix

    @raincious 玩不太来,代码都不是很严谨,谢谢您
    matsuijurina
    matsuijurina
    Sep 18, 2015 via Android
    12
    记得是全中学妹子团队做的,终于完成了吗
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    13
    @matsuijurina 不完全是,比如说我,就是被强加的。
    目前还有一个活着,其余全部走了(开学)
    raincious
    raincious
    Sep 18, 2015
    14
    @Andy1999

    没事哈。也有个一句话的解决方案,就是类似于:

    var clickTimeout = null;

    if (clickTimeout ) {
    clearTimeout (clickTimeout );
    }

    clickTimeout = setTimeout (function () { }, <Time in ms>);

    这样的。
    eary
    eary
    Sep 18, 2015
    15
    wow,厉害啊。未成年吧? 还不能够工作啊。
    airyland
    airyland
    Sep 18, 2015
    16
    当我不重新输入地址而是一直 enter 的时候。。不停生成短链,然后就重定向循环了。
    xfspace
    xfspace
    Sep 18, 2015 via Android
    17
    检查下证书链? android4.4.4 chrome 提示~而且查看也没看到 Gandi 的信息,就 qaq.cat
    twor2
    twor2
    Sep 18, 2015
    18
    twor2
    twor2
    Sep 18, 2015
    19
    @loveyu 天明所在
    slixurd
    slixurd
    Sep 18, 2015
    20
    循环重定向,插入的时候注意查重
    leavic
    leavic
    Sep 18, 2015
    21
    域名太长,出售 nat.pw :)
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    22
    @eary 对 未成年
    @airyland 然而设计的时候没有考虑到攻击
    再说了任何防御都是防君子防不住小人,要打我这垃圾服务器秒死
    @xfspace 感谢,稍后检查
    @leavic 我们的 k.ky 被收回了,不然肯定用那个
    @slixurd 已经准备干掉部分域名
    leavic
    leavic
    Sep 18, 2015
    23
    @Andy1999 原来还有.ky 域名呢,看来我不知道的域名真是太多了。
    airyland
    airyland
    Sep 18, 2015
    24
    @Andy1999 说小人太严重了,将短链直接显示在输入框里明显容易发生误操作再次生成短链。
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    25
    @airyland 今天刚上线就被刷了:D 已经刷到 http://qaq.cat/3I 了,这样子的话,您算算被 post 了多少次我也算不太来,至少上百了吧,后台一看,基本都是 qaq.cat->qaq.cat 这类毫无疑义的玩意
    Andy1999
    Andy1999
    OP
    Sep 18, 2015 via iPhone
    26
    sciooga
    sciooga
    Sep 18, 2015
    27
    原来不会自动补上 http 的啊 ...
    摇到了一个这个: http://qaq.cat/3Q
    abelyao
    abelyao
    Sep 19, 2015
    28
    楼主的 .cat 注册一年多少钱?
    Tink
    Tink
    Sep 19, 2015
    29
    我之前自己也写了一个 php 的缩址服务,但是没有用到数据库,全部在文件里存着,改天也贴上来
    Andy1999
    Andy1999
    OP
    Sep 19, 2015 via iPhone
    30
    @abelyao Gandi 68/年
    WhyLiam
    WhyLiam
    Sep 19, 2015
    31
    http://qaq.cat/4t 不能短域名太多层
    Andy1999
    Andy1999
    OP
    Sep 19, 2015 via iPhone
    32
    @WhyLiam 请遵守中国法律法规
    abelyao
    abelyao
    Sep 19, 2015 via iPhone
    33
    @Andy1999 啥! cat 这么便宜吗! RMB 还是美刀啊?
    abelyao
    abelyao
    Sep 19, 2015 via iPhone
    34
    @Andy1999 话说注册 cat 需要什么特别资料吗?
    c742435
    c742435
    Sep 19, 2015
    35
    只有我对妹子好奇吗。。。。求妹子图……
    jsthon
    jsthon
    Sep 19, 2015 via Android
    36
    Android Chrome 不信任证书
    manhere
    manhere
    Sep 19, 2015
    37
    1.循环生成
    2.跳转到别人地址。。。
    v2gba
    v2gba
    Sep 19, 2015
    38
    卧槽。。。。。。。坑爹啊

    我输入了一个 Google maps 的 URL
    然后点了一下 变成了 http://qaq.cat/4N
    这里还是对的

    继续点击,
    看生成的 URL 感觉看了一会儿有重复的

    随便选了个打开。。。。。。
    先是提示 redirect
    嗯
    然后突然就跳到草榴了。。

    我在上班啊!
    还好美国同事不认识草榴
    jedyu
    jedyu
    Sep 19, 2015
    39
    http://qaq.cat/50

    自动补齐 http 很有必要
    jump2cn
    jump2cn
    Sep 19, 2015
    40
    竟然是顺序编号,这样好吗....
    Andy1999
    Andy1999
    OP
    Sep 19, 2015 via iPhone
    41
    @abelyao 你得会加泰罗尼亚语言
    @MrGba2z 目前没有域名黑名单,这些域名都是可以添加的,下版本会用 WAF 直接拦掉
    edire
    edire
    Sep 19, 2015
    42
    为什么 一天就做完了呢。。。
    BigDecimal
    BigDecimal
    Sep 19, 2015
    43
    将 form 放在 body 和 head 之间是什么黑科技?
    qiuai
    qiuai
    Sep 19, 2015
    44
    一直点就一直加密 qaq.cat.....为什么不做下判断呢.何必去短链接一个短链接呢...
    sox
    sox
    Sep 19, 2015 via Android
    45
    短链服务这么多,你这域名做这个真是浪费啊。
    Daddy
    Daddy
    Sep 19, 2015
    46
    @abelyao 不需要证明,但这后缀特别要求是使用加泰罗尼亚语言,巴赛罗那闹独立的那个地方语言,这个后缀也是应这方面的需求的,将他们视为独立的一员。 不过似乎没有什么,大概就像.us 后缀一样,会很宽松。除非被举报了。
    Andy1999
    Andy1999
    OP
    Sep 19, 2015 via iPhone
    47
    @Daddy 6 个月内要求发布一个加泰罗尼亚语言网站, Gandi 说的啦~
    wanliang1221
    wanliang1221
    Sep 19, 2015
    48
    高中生厉害!
    KillPaul
    KillPaul
    Sep 19, 2015
    49
    我觉得吧... "Type the URL what you want to short there." 这句话貌似不符合语法规范...
    1. what 这个词肯定不对,我虽然语法说不出来,但是我觉得应该删掉这个 what ,或者是换成 that ?求英语高手解答。
    2. short 貌似要改成 shorten 。
    3. there 应该改成 here 更好一点。
    abelyao
    abelyao
    Sep 19, 2015
    50
    @Daddy 是只要有一个页面使用了 加泰罗尼亚语 就好了呢?还是要求整个网站使用这个语言?他们怎么检查呢? @Andy1999 你是咋处理的?
    Daddy
    Daddy
    Sep 19, 2015
    51
    @abelyao @Andy1999 .us 也一样写着必须美国人或四种与美国有关联的个人、组织才能申请,但根本没屁事。 我一个已过期.cat 就挂了个中文网页差不多一年了, Whois 邮箱没收到过一次这方面的邮件。 应该说,估计跟.us 一样,除非有人刻意举报,否则也只会是个摆设。
    顺便说个,.cat 这两年新注册都有优惠,上次看到还是 6.5 刀的,不过续费不便宜, 30 刀水平的。
    Andy1999
    Andy1999
    OP
    Sep 19, 2015
    52
    @abelyao 我理都没理他。。。
    abelyao
    abelyao
    Sep 19, 2015 via iPhone
    53
    @Daddy @Andy1999 谢谢两位,几年前就很喜欢 cat 的域名了,但之前门槛太高,现在可以弄一个了。噢耶
    hzlzh
    hzlzh
    Sep 19, 2015
    54
    不错, flat-ui
    LancerComet
    LancerComet
    Sep 19, 2015
    55
    手机端友好,不错。抢到了 80
    Daddy
    Daddy
    Sep 19, 2015
    56
    @abelyao 哈哈,你要是不放心,那就在页脚特意用加泰罗尼亚语言写个短句支持他们的独立运动, 2333
    我猜是这样的,当初向 ICANN 申请这个后缀的时候,就是为他们的独立运动发声,可普通理由不够说服力,就将这条件作为了申请理由加分,强调申请这后缀不是多此一举,而是要强化他们的运动。 结果呢,.ca 已存在,加了个字母变成受欢迎的 .cat ,要是真限制的就挣不到钱,可他们的运动又需要钱,只好如此了。毕竟加泰罗尼亚语言不是一个行将灭绝受保护的小语言,而是多个国家和地区的官方语言,只是为了强调他们的独立性
    GPU
    GPU
    Sep 19, 2015
    57
    @raincious 你這個東西,是不是點擊一次之後,如果结果没有返回过来的话 ,再次点击就会忽略?
    GPU
    GPU
    Sep 19, 2015
    58
    为什么乱跳的?
    raincious
    raincious
    Sep 19, 2015
    59
    @GPU

    是啊。

    如果有不会返回的可能,请用`Alter`模式然后配合 Delay 时间设置。
    GPU
    GPU
    Sep 19, 2015
    60
    @raincious 貌似不错的样子哦 , 明天添加到我的 开门程序去 。

    现在我的程序也是, 如果狂按按钮。 python 的 UART 就处理不过来直接返回 500 了。
    em70
    em70
    Sep 19, 2015
    61
    不加 http://就不行
    raincious
    raincious
    Sep 19, 2015
    62
    @GPU

    哦,如果这样的话,得注意:你如果用`Alter`模式,用户在之前一个 Delay 周期结束之后再次点击按钮就可以继续提交了。而如果这期间你前面的 Callback 没有返回,那么那些之前的 Callback 是会被忽略掉的。

    这样的话,如果 Callback 1 返回了一个成功的结果,而其后的 Callback 2 返回了一个失败的结果,那么这个模块会最终呼叫那个返回失败结果的 Callback 。

    另外还要注意这个模块其实是用 setInterval 实现的。意味着如果你设定的 1 秒的 Delay ,那么用户按完按钮 1 秒以后你的 run 调用才会被执行。

    如果你真要设定一秒那么长的超时的话,或许得给用户一个 Loading.gif 什么的假装服务器在处理。

    请参考下具体代码来确定这个模块是否符合你的要求:

    你或许会想看:`run`的实现:
    https://github.com/raincious/jQueue/blob/master/src/jqu.js#L160

    以及队列的运行方式:
    https://github.com/raincious/jQueue/blob/master/src/jqu.js#L51

    ==========================

    另外,你的需求为啥会导致 Callback 不叫?是服务器没有响应么?但如果你用了 jQuery 之类,它的 Ajax 里有个 timeout 设定的吧,除此之外基本上我想不出有啥会导致 Callback 不会呼叫的了(其实我不是前端……)。

    要不你试试看用`Block`模式,然后$.ajax 带着超时限制去请求试试?
    GPU
    GPU
    Sep 20, 2015
    63
    @raincious 你最后说的“ Callback 不叫” 不是太懂。

    你应该是说为什么没有响应把? UART 是发了一个指令去蓝牙让单片机处理之后返回 1 或者 0 。

    但是 过程中,蓝牙模块没有反映得这么快 ,所以如果有时候按了一次感觉没反应的话,就会狂按 。

    结着 UART 模块就傻逼了, 不知道怎么处理就直接 500 出来了。

    我也打算是点击按钮之后 ,显示一个 loading 的按钮。

    但是 , 还没有了解过有没方法可以检测到只要一接收到结果,就恢复 按钮的使用


    ======

    你发的哪两个链接我还看不懂呢 。

    jquery 我也只是现学现用 ,懂一点皮毛呢
    kslr
    kslr
    Sep 20, 2015
    64
    @GPU 你是怎么发请求的? ajax 不是有回调吗
    GPU
    GPU
    Sep 20, 2015
    65
    @kslr 就是用 ajax , 是有回调 。但是如果结果还没有返回 ,再点按钮他回来会再发送一个 POST

    https://gist.github.com/p0we7/c390f6c992e0a52ca955
    raincious
    raincious
    Sep 20, 2015
    66
    @GPU

    那么如果只是这样一个小功能,你可以在点完按钮之后 Disable 那个按钮,然后 success 、 error 、 always 几个 Callback 里让按钮 Re-enable 。

    具体就是 `function POST (args ) {` 前面加上 `$('#Open').attr ('disabled', 'disabled');`

    然后`success`、`error`,`always`这些回调里加上 `$('#Open').attr ('disabled', '');`

    这样用户前端就不能再点击那个按钮了(如果它是个 HTML 按钮的话)。

    如果你是自定义了一个其他 DOM 的按钮(比如拿图片做了个),可以在 `jQuery (document ).ready (function () {` 里设定一个变量(比如 var post_disabled ),然后通过判断这个变量来做类似的操作。
    GPU
    GPU
    Sep 20, 2015
    67
    @raincious 我用的是 bootstrap ,这样子 Disable 也不错 ,我再去看看怎么添加一个 loading 图标
    GPU
    GPU
    Sep 20, 2015
    68
    @raincious 我还发现一个问题啊 , 我刚刚试了一下你给的哪个 disable , 就是他是 disable 状态 ,但是继续点按钮还是会 post 数据,这个该怎么破
    raincious
    raincious
    Sep 20, 2015
    69
    @GPU 其实……

    你可以用<button>标签做按钮,就像比如:

    <button type="button">
    <i id="button-icon"></i>
    Submit
    </button>

    然后,通过 jQuery 来改那个 `#button-icon` 的 class 。

    See also: https://fortawesome.github.io/Font-Awesome/examples/#animated
    raincious
    raincious
    Sep 20, 2015
    70
    @GPU

    那我就是记错了,不过你可以试试看这样:
    https://jsfiddle.net/33zz9njz/1/
    GPU
    GPU
    Sep 20, 2015
    71
    @raincious

    我一直都是用的 button , 用你给的那个 disable 使用了之后 ,虽然按钮是已经禁用了(灰色) .

    而且鼠标放上去也是变成的红色圈禁止的符号,但是继续按它还是会 POST 数据出去 .

    然而我有两个 按钮 ,一个 Open 一个 Close 的 . Close 的就不会 ,Open 的就会.不知道什么情况
    raincious
    raincious
    Sep 20, 2015
    72
    @GPU

    或许你需要提供更多的代码,这样才能进行测试。
    GPU
    GPU
    Sep 20, 2015
    73
    @raincious

    已经搞掂咯 .本身只想弄一个简单的点击之后禁用 ...

    然后又找到了一个可以显示加载中动画的插件 然后添加了进去 ,默认就带有 加载中禁用的功能 .


    谢谢啦 .
    DeltaC
    DeltaC
    Sep 21, 2015
    74
    QAQA 。兹次。楼主的 jp 的 pac 好像挂了吧,请问是吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1940 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 16:32 · PVG 00:32 · LAX 08:32 · JFK 11:32
    ♥ Do have faith in what you're doing.