Last active
September 21, 2019 13:42
-
-
Save indolering/5334360 to your computer and use it in GitHub Desktop.
Uses Private Internet Access REST API to set which port Transmission listens on, binds all Transmission traffic to the tun0 (typically OpenVPN) network interface, and then opens Transmission.
This file contains hidden or 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
set user to "USERNAME" | |
set pass to "PASSWORD" | |
--set token automatically based on macaddress | |
set macAddHash to do shell script "/sbin/ifconfig en0 | /usr/bin/awk '/ether / {print $2}' | /usr/bin/tr -d ':' | md5 " | |
try | |
set vpn_ip to do shell script "ifconfig tun0 | grep inet | awk '{print $2}'" | |
--hack: must delete property before writing it but first run 'defaults delete' fails | |
do shell script "defaults write org.m0k.transmission BindAddressIPv4 " & vpn_ip & "" | |
do shell script "defaults delete org.m0k.transmission BindAddressIPv4" | |
do shell script "defaults write org.m0k.transmission BindAddressIPv4 " & vpn_ip & "" | |
set running_message to "" | |
set vpn_port to do shell script "curl -d \"user=" & user & "&pass=" & pass & "&client_id=" & macAddHash & "&local_ip=" & vpn_ip & "\" https://www.privateinternetaccess.com/vpninfo/port_forward_assignment | grep -oE \"[0-9]+\"" | |
do shell script "defaults write org.m0k.transmission BindPort " & vpn_port & "" | |
do shell script "defaults delete org.m0k.transmission BindPort" | |
do shell script "defaults write org.m0k.transmission BindPort " & vpn_port & "" | |
set login_message to "" | |
tell application "Transmission" to activate | |
on error error_message number error_number | |
display alert ("Error") ¬ | |
message error_message ¬ | |
& (" Error number ") & error_number | |
end try |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment