SeatNext Ext Bookmarklet

    
      
  • /*
     * @title SeatNext Ext Bookmarklet
     * @description ATND, tweetviteからSeatNextへImportするBookmarklet
     * @include http://atnd.org/*
     * @include http://tweetvite.com/*
     * @license MIT License
     * @require jquery
     */
    (
    function(){
                var url = location.href;
                var user = [];
                var mode = [];
                var form = {
                    "tid" : "tidadd",
                    "nick" : "nickadd", 
                    "label" : "labeladd"
                };
                if (url != "") {
                    if (url.indexOf( "http://atnd.org/events/")  > -1) {
                        var event_id = url.replace("http://atnd.org/events/", "");
                        $.ajax({
                            url: "http://api.atnd.org/events/users/",
                            dataType: "jsonp",
                            data: {
                                event_id: event_id, 
                                format: "jsonp"
                            },
                            success: function(json){
                                var events = json.events;
                                for (var i = 0; i < events.length; i++) {
                                    var event = events[i];
                                    // title
                                    //user.push(event.title);
                                    //mode.push("label");
                                    for (var j = 0; j < event.users.length; j++) {
                                        var u = event.users[j];
                                        if (u.status == 1) {
                                            if (u.twitter_id != null) {
                                                user.push(u.twitter_id);
                                                mode.push("tid");
                                            } else {
                                                user.push(u.nickname);
                                                mode.push("nick");
                                            }                     
                                        }
                                    }
                                }
                                openSeatNext(user, mode, form);
                            },
                            error: function(){
                                alert('error');
                            }
                        }
                        );
                    } else if (url.indexOf( "http://tweetvite.com/event/")  > -1) {
                        var public_id = url.replace("http://tweetvite.com/event/", "");
                        $.ajax({
                            url: "http://pipes.yahoo.com/pipes/pipe.run",
                            dataType: "jsonp",
                            data: {
                                _id: "028aa9b989f4cb07f0bd066ea4d615a9",
                                public_id: public_id, 
                                _render: "json"
                            },
                            jsonp: "_callback",
                            success: function(json){
                                var guests = json.value.items[0].guests;
                                // title
                                //user.push("#" + public_id);
                                //mode.push("label");
                                for (var i = 0; i < guests.length; i++) {
                                    var guest = guests[i];
                                    if (guest.rsvp != "N") {
                                        if (guest.profile.service_type == "1") {
                                            user.push(guest.profile.display_name);
                                            mode.push("tid");   
                                        } else {
                                            user.push(guest.profile.display_name);
                                            mode.push("nick");   
                                        }
                                    }
                                }
                                openSeatNext(user, mode, form);
                            },
                            error: function(){
                                alert('error');
                            }
                        });
                    }
                }
             }
    )();
    function openSeatNext(user, mode, form) {
        var u = "";
        for (var i = 0; i < user.length; i++) {
            if (mode[i] == "tid" || mode[i] == "nick") {
                if (u != "") {
                    u += "+";
                }
                if (mode[i] == "nick") {
                    u += "$";
                }
                u += user[i];
            }
        }
        location.href = "http://www.seatnext.com/?import=" + u;
    }
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2010/10/24 09:43:50 - 2010-10-24
  2. 2010/10/23 00:57:59 - 2010-10-23
  3. 2010/10/23 00:56:21 - 2010-10-23
  4. 2010/10/23 00:40:07 - 2010-10-23
  5. 2010/10/22 13:39:23 - 2010-10-22