Last active
May 30, 2022 14:47
-
-
Save d3m3vilurr/ee90da066f1f4649fb0237de5609945c to your computer and use it in GitHub Desktop.
Unlock waypoint limit of Kakao Map
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Unlock waypoint limit of Kakao Map | |
// @namespace https://map.kakao.com/ | |
// @updateURL https://gist.github.com/d3m3vilurr/ee90da066f1f4649fb0237de5609945c/raw/unlock_waypoint_limit_of_kakao_map.user.js | |
// @downloadURL https://gist.github.com/d3m3vilurr/ee90da066f1f4649fb0237de5609945c/raw/unlock_waypoint_limit_of_kakao_map.user.js | |
// @version 0.1 | |
// @description Unlock waypoint limit of bike route planner of Kakao Map. | |
// @author Sunguk Lee <[email protected]> | |
// @match https://map.kakao.com/* | |
// @exclude https://map.kakao.com/mapclick.html* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=kakao.com | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
const main = () => { | |
// bypass route limit | |
// original msg \uacbd\uc720\uc9c0\ub294 \ucd5c\ub300 5\uac1c\uae4c\uc9c0\ub9cc \ucd94\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4 | |
Application.flagSearchController.flagSearch_.constructor.prototype.origGetViaCount = Application.flagSearchController.flagSearch_.constructor.prototype.getViaCount | |
// always pass the limit | |
Application.flagSearchController.flagSearch_.constructor.prototype.getViaCount = () => 1; | |
Application.flagSearchController.waypointSearchBoxController_.constructor.prototype.origSetFlagSearch = Application.flagSearchController.waypointSearchBoxController_.constructor.prototype.setFlagSearch; | |
const WaypointBoxView = window.waypointBoxView.constructor; | |
// remove route limit from original code | |
Application.flagSearchController.waypointSearchBoxController_.constructor.prototype.setFlagSearch = function(b){ | |
var b = b.waypoints, d = b.length - 1; | |
if (this.boxViewList_.length > 0) { | |
this.boxViewList_.forEach(function() { | |
this.listDragController_.removeToNumber(0) | |
}, this); | |
this.boxViewList_.length = 0 | |
} | |
this.addVia_ = true; | |
this.changeBox_.setVisible(d == 1); | |
this.viaBox_.removeClass("HIDDEN") | |
this.focusTargetNumber = null; | |
b.forEach(function(b, c) { | |
waypointBoxView = new WaypointBoxView(c, c == d); | |
waypointBoxView.onRemove.add(this.onRemove_, this); | |
waypointBoxView.onSearch.add(this.onSearch_, this); | |
if(b && b.name && b.name != "\uc8fc\uc18c\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\ub294 \uc9c0\uc5ed") { | |
waypointBoxView.setValue(b.name); | |
} else{ | |
var h = ""; | |
if (b) { | |
h = c == 0 ? "\ucd9c\ubc1c" : c == d ? "\ub3c4\ucc29" : "\uacbd\uc720" + c; | |
b.name=h | |
} else if (this.focusTargetNumber == null) { | |
this.focusTargetNumber = c; | |
} | |
waypointBoxView.setValue(h) | |
} | |
this.boxViewList_.push(waypointBoxView); | |
this.listDragController_.add(waypointBoxView); | |
waypointBoxView.setSuggest(); | |
if (b && b.name) { | |
var h = Application.historyController.TYPE_LIST, g = b.pointType, k = { | |
id:b.id,name:b.name,coords:b.coords | |
}; | |
switch(b.pointType){ | |
case "ADDRESS": | |
g = h.ADDRESS; | |
break; | |
case "PLACE": | |
g = h.PLACE; | |
break; | |
case "SUBWAY_STATION": | |
g = h.SUBWAY_STATION; | |
break; | |
case "BUS_STOP": | |
g = h.BUS_STOP | |
} | |
if (g == "NORMAL" && b.id) { | |
g = h.ADDRESS; | |
} | |
g && Application.historyController.addPoi(g, k) | |
} | |
}, this); | |
this.focusTargetNumber != null ? this.setFocus(this.focusTargetNumber) : this.onMethodFocus.notify(); | |
// restore flag image | |
jQuery('img.flagImg').filter(function() { | |
return jQuery(this).attr('src') === ""; | |
}).attr('src', '//t1.daumcdn.net/localimg/localimages/07/2018/pc/flagImg/green_b_5.png'); | |
}; | |
}; | |
const setup = () => { | |
if (window.__unlock_waypoint_limit) { | |
return; | |
} | |
if (!window.Application) { | |
setTimeout(setup, 1000); | |
return; | |
} | |
window.__unlock_waypoint_limit = true; | |
main(); | |
}; | |
setTimeout(setup, 1000); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment