可自定义远端ACL文件地址

This commit is contained in:
秦宇航
2017-05-14 08:32:02 +08:00
parent 83a9e475be
commit 36d59645d9
4 changed files with 161 additions and 139 deletions
+4 -3
View File
@@ -80,8 +80,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
"LocalSocks5.EnableUDPRelay": NSNumber(value: false as Bool),
"LocalSocks5.EnableVerboseMode": NSNumber(value: false as Bool),
"GFWListURL": "https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt",
"WhiteListURL": "https://raw.githubusercontent.com/breakwa11/gfw_whitelist/master/whitelist.pac",
"WhiteListIPURL": "https://raw.githubusercontent.com/breakwa11/gfw_whitelist/master/whiteiplist.pac",
"ACLWhiteListURL": "https://raw.githubusercontent.com/shadowsocksr/shadowsocksr-libev/master/acl/chn.acl",
"ACLAutoListURL": "https://raw.githubusercontent.com/shadowsocksr/shadowsocksr-libev/master/acl/gfwlist.acl",
"ACLProxyBackCHNURL":"https://raw.githubusercontent.com/shadowsocksr/ShadowsocksX-NG/develop/ShadowsocksX-NG/backchn.acl",
"AutoConfigureNetworkServices": NSNumber(value: true as Bool),
"LocalHTTP.ListenAddress": "127.0.0.1",
"LocalHTTP.ListenPort": NSNumber(value: 1087 as UInt16),
@@ -266,7 +267,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
}
@IBAction func updateWhiteList(_ sender: NSMenuItem) {
UpdatePACFromWhiteList()
UpdateACL()
}
@IBAction func editUserRulesForPAC(_ sender: NSMenuItem) {
@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16F71b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12120"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="AdvPreferencesWindowController" customModule="ShadowsocksX_NG" customModuleProvider="target">
@@ -14,31 +16,28 @@
<window title="Advance Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" animationBehavior="default" id="F0z-JX-Cv5">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="469" y="456" width="480" height="651"/>
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
<rect key="contentRect" x="469" y="456" width="480" height="716"/>
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="480" height="651"/>
<rect key="frame" x="0.0" y="0.0" width="480" height="716"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="ayu-Tb-kmf">
<rect key="frame" x="38" y="357" width="405" height="5"/>
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<font key="titleFont" metaFont="system"/>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="ayu-Tb-kmf">
<rect key="frame" x="38" y="429" width="405" height="5"/>
</box>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="I4a-N9-Tkv">
<rect key="frame" x="48" y="334" width="192" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I4a-N9-Tkv">
<rect key="frame" x="48" y="406" width="192" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="188" id="Tny-lh-gfo"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="GFW List URL:" id="dg0-gS-z5V">
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="PAC GFW List URL:" id="dg0-gS-z5V">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="6MD-Ry-R5P">
<rect key="frame" x="49" y="257" width="378" height="69"/>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6MD-Ry-R5P">
<rect key="frame" x="49" y="329" width="378" height="69"/>
<constraints>
<constraint firstAttribute="height" constant="69" id="NVe-Ir-JCv"/>
</constraints>
@@ -55,38 +54,36 @@
</binding>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wCp-nB-dda">
<rect key="frame" x="18" y="614" width="439" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wCp-nB-dda">
<rect key="frame" x="18" y="694" width="439" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="Don't change these preferences if you have no idea what they are." id="8wL-qv-5nD">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<box verticalHuggingPriority="750" title="Box" boxType="separator" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="JBW-8M-eHP">
<rect key="frame" x="36" y="603" width="405" height="5"/>
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<font key="titleFont" metaFont="system"/>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="JBW-8M-eHP">
<rect key="frame" x="36" y="683" width="405" height="5"/>
</box>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="S5h-Xx-HUG">
<rect key="frame" x="27" y="541" width="204" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S5h-Xx-HUG">
<rect key="frame" x="73" y="621" width="158" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local Socks5 Listen Port:" id="qRs-ow-vVB">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xWv-tc-lQe">
<rect key="frame" x="27" y="578" width="204" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xWv-tc-lQe">
<rect key="frame" x="27" y="658" width="204" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local Socks5 Listen Address:" id="cwr-n0-zwn">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Q2L-Fh-TW1">
<rect key="frame" x="237" y="575" width="160" height="22"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q2L-Fh-TW1">
<rect key="frame" x="237" y="655" width="160" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="iRm-V5-3gu">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@@ -100,16 +97,17 @@
</binding>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="e3S-m6-k5Y">
<rect key="frame" x="27" y="427" width="204" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="e3S-m6-k5Y">
<rect key="frame" x="27" y="507" width="204" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Timeout:" id="i4l-2S-gOQ">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sRP-xs-alR">
<rect key="frame" x="237" y="422" width="60" height="22"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sRP-xs-alR">
<rect key="frame" x="237" y="502" width="60" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="wjv-Nc-tjX">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@@ -124,8 +122,12 @@
<outlet property="formatter" destination="YkP-l0-oah" id="BzU-cu-104"/>
</connections>
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="DiD-K0-Y43">
<rect key="frame" x="235" y="392" width="219" height="18"/>
<button horizontalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="DiD-K0-Y43">
<rect key="frame" x="235" y="468" width="219" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="215" id="U0g-vk-THf"/>
<constraint firstAttribute="height" constant="18" id="hbJ-1V-Tpw"/>
</constraints>
<buttonCell key="cell" type="check" title="Enable Udp Replay" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="1C3-4s-Apd">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@@ -134,8 +136,8 @@
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.LocalSocks5.EnableUDPRelay" id="fuM-ii-maJ"/>
</connections>
</button>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XQ5-fw-o8t">
<rect key="frame" x="237" y="538" width="60" height="22"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XQ5-fw-o8t">
<rect key="frame" x="237" y="618" width="60" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="60" id="reo-ha-VKi"/>
</constraints>
@@ -153,8 +155,8 @@
<outlet property="formatter" destination="uE9-0u-CJW" id="QsO-5H-MYE"/>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eoD-7r-Q85">
<rect key="frame" x="303" y="425" width="96" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eoD-7r-Q85">
<rect key="frame" x="303" y="505" width="96" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="92" id="xw1-XT-mjQ"/>
</constraints>
@@ -164,8 +166,11 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="qVQ-tJ-cO6">
<rect key="frame" x="235" y="366" width="219" height="18"/>
<button horizontalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qVQ-tJ-cO6">
<rect key="frame" x="235" y="438" width="219" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="18" id="Zyt-I0-lv1"/>
</constraints>
<buttonCell key="cell" type="check" title="Enable Verbose Mode" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="dCD-gg-I2i">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@@ -174,24 +179,25 @@
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.LocalSocks5.EnableVerboseMode" id="Nu9-zu-vUE"/>
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2UM-QO-GC5">
<rect key="frame" x="69" y="505" width="162" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2UM-QO-GC5">
<rect key="frame" x="69" y="585" width="162" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local PAC Listen Address:" id="dvL-Ic-Wae">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bh0-H9-9hI">
<rect key="frame" x="93" y="468" width="138" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bh0-H9-9hI">
<rect key="frame" x="93" y="548" width="138" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Local PAC Listen Port:" id="PSg-XK-qhl">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WF3-m7-I1v">
<rect key="frame" x="237" y="502" width="160" height="22"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WF3-m7-I1v">
<rect key="frame" x="237" y="582" width="160" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="8wf-uK-tGn">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@@ -201,8 +207,8 @@
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.PacServer.ListenAddress" id="4UF-xD-Z2q"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wNM-6D-tgb">
<rect key="frame" x="237" y="463" width="60" height="22"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wNM-6D-tgb">
<rect key="frame" x="237" y="543" width="60" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="right" drawsBackground="YES" id="FXj-Bf-XDn">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@@ -212,91 +218,134 @@
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.PacServer.ListenPort" id="Tb3-to-Ngs"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X9m-FK-fcs">
<rect key="frame" x="50" y="148" width="378" height="69"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X9m-FK-fcs">
<rect key="frame" x="50" y="225" width="378" height="69"/>
<constraints>
<constraint firstAttribute="height" constant="69" id="jIM-f3-E0y"/>
</constraints>
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="7lV-Hj-mcw">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.WhiteListURL" id="34g-xk-DKk"/>
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.ACLWhiteListURL" id="1OU-Ly-pwB"/>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="a5H-9g-9jP">
<rect key="frame" x="47" y="227" width="98" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="White List URL:" id="aif-uV-Lxk">
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a5H-9g-9jP">
<rect key="frame" x="47" y="304" width="126" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="ACL White List URL:" id="aif-uV-Lxk">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WrF-lf-RV1">
<rect key="frame" x="48" y="111" width="113" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="White IP List URL:" id="qhu-d1-qgq">
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WrF-lf-RV1">
<rect key="frame" x="48" y="200" width="119" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="ACL Auto List URL:" id="qhu-d1-qgq">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CK9-jm-Bcc">
<rect key="frame" x="50" y="30" width="378" height="69"/>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CK9-jm-Bcc">
<rect key="frame" x="50" y="124" width="378" height="69"/>
<constraints>
<constraint firstAttribute="height" constant="69" id="YTn-qQ-Fz5"/>
</constraints>
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="eVT-71-Bnu">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.WhiteListIPURL" id="SGX-q6-yZ3"/>
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.ACLAutoListURL" id="TO8-ey-7bW"/>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jip-F1-43v">
<rect key="frame" x="48" y="97" width="134" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="ACL Back China URL:" id="cwt-37-PW1">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gMW-uq-O4L">
<rect key="frame" x="49" y="20" width="377" height="69"/>
<constraints>
<constraint firstAttribute="height" constant="69" id="aqr-8q-xLQ"/>
</constraints>
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="A7M-jX-jBX">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="pR1-Bo-AWz" name="value" keyPath="values.ACLProxyBackCHNURL" id="fgI-di-sSq"/>
</connections>
</textField>
</subviews>
<constraints>
<constraint firstItem="xWv-tc-lQe" firstAttribute="baseline" secondItem="Q2L-Fh-TW1" secondAttribute="baseline" id="0ub-69-rbe"/>
<constraint firstAttribute="bottom" secondItem="6MD-Ry-R5P" secondAttribute="bottom" constant="257" id="1VT-Fs-nNp"/>
<constraint firstItem="S5h-Xx-HUG" firstAttribute="leading" secondItem="e3S-m6-k5Y" secondAttribute="leading" id="1Y0-Oh-Ev4"/>
<constraint firstItem="wCp-nB-dda" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="20" symbolic="YES" id="4af-lJ-vAL"/>
<constraint firstItem="xWv-tc-lQe" firstAttribute="leading" secondItem="S5h-Xx-HUG" secondAttribute="leading" id="7E0-aW-12T"/>
<constraint firstItem="6MD-Ry-R5P" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="49" id="8CU-pQ-jDz"/>
<constraint firstItem="xWv-tc-lQe" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="29" id="8oq-65-XGK"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="leading" secondItem="sRP-xs-alR" secondAttribute="trailing" constant="8" symbolic="YES" id="GhL-we-2co"/>
<constraint firstItem="sRP-xs-alR" firstAttribute="leading" secondItem="DiD-K0-Y43" secondAttribute="leading" id="H7k-Nh-YHo"/>
<constraint firstAttribute="trailing" secondItem="DiD-K0-Y43" secondAttribute="trailing" constant="28" id="H8a-Jg-72h"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="leading" secondItem="sRP-xs-alR" secondAttribute="leading" id="Ij2-mo-WRt"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="qVQ-tJ-cO6" secondAttribute="leading" id="J5O-DE-8O9"/>
<constraint firstItem="Q2L-Fh-TW1" firstAttribute="top" secondItem="JBW-8M-eHP" secondAttribute="bottom" constant="8" symbolic="YES" id="Jkq-uJ-Wv4"/>
<constraint firstAttribute="trailing" secondItem="wCp-nB-dda" secondAttribute="trailing" constant="25" id="Mod-B8-1Yl"/>
<constraint firstItem="wCp-nB-dda" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="R3i-gt-6zg"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="trailing" secondItem="qVQ-tJ-cO6" secondAttribute="trailing" id="WaY-S9-VQ2"/>
<constraint firstItem="I4a-N9-Tkv" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="50" id="Wd9-qu-Mx8"/>
<constraint firstItem="e3S-m6-k5Y" firstAttribute="top" secondItem="sRP-xs-alR" secondAttribute="top" id="Xmc-dV-VXv"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="top" secondItem="wCp-nB-dda" secondAttribute="bottom" constant="8" symbolic="YES" id="Ysd-52-5Fn"/>
<constraint firstAttribute="trailing" secondItem="Q2L-Fh-TW1" secondAttribute="trailing" constant="83" id="ZoL-73-xKa"/>
<constraint firstItem="sRP-xs-alR" firstAttribute="leading" secondItem="e3S-m6-k5Y" secondAttribute="trailing" constant="8" symbolic="YES" id="ZvN-ZN-EVZ"/>
<constraint firstItem="sRP-xs-alR" firstAttribute="baseline" secondItem="eoD-7r-Q85" secondAttribute="baseline" id="aXC-g0-ZpB"/>
<constraint firstItem="qVQ-tJ-cO6" firstAttribute="top" secondItem="DiD-K0-Y43" secondAttribute="bottom" constant="12" id="ccj-Fd-7z7"/>
<constraint firstItem="6MD-Ry-R5P" firstAttribute="top" secondItem="I4a-N9-Tkv" secondAttribute="bottom" constant="8" symbolic="YES" id="dPZ-gY-1am"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="36" id="dSL-lu-CVv"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="top" secondItem="Q2L-Fh-TW1" secondAttribute="bottom" constant="15" id="e6i-xd-BD3"/>
<constraint firstItem="ayu-Tb-kmf" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="edi-Ij-cuc"/>
<constraint firstItem="Q2L-Fh-TW1" firstAttribute="leading" secondItem="XQ5-fw-o8t" secondAttribute="leading" id="g40-g1-s29"/>
<constraint firstItem="Q2L-Fh-TW1" firstAttribute="trailing" secondItem="eoD-7r-Q85" secondAttribute="trailing" id="g4n-5J-iDi"/>
<constraint firstItem="Q2L-Fh-TW1" firstAttribute="leading" secondItem="xWv-tc-lQe" secondAttribute="trailing" constant="8" symbolic="YES" id="hoH-Lm-ihP"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="leading" secondItem="S5h-Xx-HUG" secondAttribute="trailing" constant="8" symbolic="YES" id="ibP-Bc-Xhg"/>
<constraint firstItem="ayu-Tb-kmf" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="38" id="kkG-sj-u3Y"/>
<constraint firstItem="ayu-Tb-kmf" firstAttribute="top" secondItem="qVQ-tJ-cO6" secondAttribute="bottom" constant="8" symbolic="YES" id="lza-Z7-YaI"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="trailing" secondItem="sRP-xs-alR" secondAttribute="trailing" id="pfd-Yd-goI"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="centerX" secondItem="6MD-Ry-R5P" secondAttribute="centerX" id="qbH-5m-epu"/>
<constraint firstItem="I4a-N9-Tkv" firstAttribute="top" secondItem="ayu-Tb-kmf" secondAttribute="bottom" constant="8" symbolic="YES" id="u7y-6r-Vj5"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="top" secondItem="sRP-xs-alR" secondAttribute="bottom" constant="14" id="xlZ-UD-qns"/>
<constraint firstItem="S5h-Xx-HUG" firstAttribute="baseline" secondItem="XQ5-fw-o8t" secondAttribute="baseline" id="y3b-k3-eBU"/>
<constraint firstItem="wCp-nB-dda" firstAttribute="centerX" secondItem="6MD-Ry-R5P" secondAttribute="centerX" id="yNP-ab-DmI"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="36" id="0hv-Tv-cje"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="WrF-lf-RV1" secondAttribute="leading" id="1aa-aW-Uwa"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="Q2L-Fh-TW1" secondAttribute="leading" id="1rd-Tz-s2W"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="qVQ-tJ-cO6" secondAttribute="leading" id="5Xn-E9-haA"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="centerX" secondItem="JBW-8M-eHP" secondAttribute="centerX" id="6WN-L2-bSA"/>
<constraint firstAttribute="trailing" secondItem="eoD-7r-Q85" secondAttribute="trailing" constant="83" id="6sY-LT-3eT"/>
<constraint firstItem="WF3-m7-I1v" firstAttribute="top" secondItem="XQ5-fw-o8t" secondAttribute="bottom" constant="14" id="8Vw-9L-BWj"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="centerX" secondItem="gMW-uq-O4L" secondAttribute="centerX" constant="1.5" id="8g5-Mj-EAv"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="WF3-m7-I1v" secondAttribute="leading" id="956-QX-x1E"/>
<constraint firstItem="ayu-Tb-kmf" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="38" id="9of-Dd-t50"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="top" secondItem="sRP-xs-alR" secondAttribute="bottom" constant="14" id="9rd-uM-5eu"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="top" secondItem="WF3-m7-I1v" secondAttribute="bottom" constant="60" id="A1a-da-wue"/>
<constraint firstItem="Q2L-Fh-TW1" firstAttribute="top" secondItem="JBW-8M-eHP" secondAttribute="bottom" constant="8" symbolic="YES" id="Aog-UR-oAm"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="top" secondItem="wCp-nB-dda" secondAttribute="bottom" constant="8" symbolic="YES" id="B77-gx-dtL"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="sRP-xs-alR" secondAttribute="leading" id="C8F-1E-YVS"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="I4a-N9-Tkv" secondAttribute="leading" id="Ejp-cy-Fdn"/>
<constraint firstItem="a5H-9g-9jP" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="49" id="Iyy-m8-Oxg"/>
<constraint firstItem="Jip-F1-43v" firstAttribute="top" secondItem="CK9-jm-Bcc" secondAttribute="bottom" constant="10" id="N3s-x2-cce"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="centerX" secondItem="6MD-Ry-R5P" secondAttribute="centerX" id="Q15-7D-xgC"/>
<constraint firstAttribute="bottom" secondItem="X9m-FK-fcs" secondAttribute="bottom" constant="225" id="QiF-Of-B17"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="wNM-6D-tgb" secondAttribute="leading" id="RKG-WC-E2p"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="trailing" secondItem="qVQ-tJ-cO6" secondAttribute="trailing" id="SQX-77-wOg"/>
<constraint firstItem="wNM-6D-tgb" firstAttribute="trailing" secondItem="sRP-xs-alR" secondAttribute="trailing" id="UF3-yl-bSs"/>
<constraint firstItem="ayu-Tb-kmf" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="UtF-HA-e7b"/>
<constraint firstItem="a5H-9g-9jP" firstAttribute="top" secondItem="6MD-Ry-R5P" secondAttribute="bottom" constant="8" symbolic="YES" id="VUV-Nu-7Ol"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="CK9-jm-Bcc" secondAttribute="leading" id="WES-3n-rnD"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="baseline" secondItem="S5h-Xx-HUG" secondAttribute="baseline" id="WbS-AV-PKP"/>
<constraint firstItem="qVQ-tJ-cO6" firstAttribute="top" secondItem="DiD-K0-Y43" secondAttribute="bottom" constant="12" id="YYP-9l-FIS"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="Jip-F1-43v" secondAttribute="leading" id="Yzu-gH-Fno"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="leading" secondItem="sRP-xs-alR" secondAttribute="trailing" constant="8" symbolic="YES" id="cB6-bA-UtV"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="baseline" secondItem="sRP-xs-alR" secondAttribute="baseline" id="cN3-aC-LKA"/>
<constraint firstItem="a5H-9g-9jP" firstAttribute="leading" secondItem="6MD-Ry-R5P" secondAttribute="leading" id="ekR-b7-lWw"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="trailing" secondItem="Q2L-Fh-TW1" secondAttribute="trailing" id="fc0-Nb-eMK"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="50" id="gM7-rk-gm3"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="leading" secondItem="gMW-uq-O4L" secondAttribute="leading" constant="1" id="gwP-jC-diC"/>
<constraint firstItem="WrF-lf-RV1" firstAttribute="top" secondItem="X9m-FK-fcs" secondAttribute="bottom" constant="8" symbolic="YES" id="h4e-oE-iRg"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="top" secondItem="a5H-9g-9jP" secondAttribute="bottom" constant="10" id="iHd-5C-daP"/>
<constraint firstItem="wNM-6D-tgb" firstAttribute="top" secondItem="WF3-m7-I1v" secondAttribute="bottom" constant="17" id="jD4-XX-Ya4"/>
<constraint firstAttribute="bottom" secondItem="Jip-F1-43v" secondAttribute="bottom" constant="97" id="jhi-PU-yXx"/>
<constraint firstAttribute="trailing" secondItem="DiD-K0-Y43" secondAttribute="trailing" constant="28" id="jy1-Bq-Fy1"/>
<constraint firstAttribute="trailing" secondItem="X9m-FK-fcs" secondAttribute="trailing" constant="52" id="kFn-Q8-OXB"/>
<constraint firstItem="eoD-7r-Q85" firstAttribute="trailing" secondItem="WF3-m7-I1v" secondAttribute="trailing" id="kLC-gm-2HS"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="leading" secondItem="XQ5-fw-o8t" secondAttribute="leading" id="kQY-5X-Zky"/>
<constraint firstItem="I4a-N9-Tkv" firstAttribute="top" secondItem="ayu-Tb-kmf" secondAttribute="bottom" constant="8" symbolic="YES" id="lVK-GP-RdA"/>
<constraint firstItem="DiD-K0-Y43" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="228" id="nl0-6X-pQ8"/>
<constraint firstItem="wNM-6D-tgb" firstAttribute="leading" secondItem="bh0-H9-9hI" secondAttribute="trailing" constant="8" symbolic="YES" id="nzV-fS-pZ1"/>
<constraint firstItem="wCp-nB-dda" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="obA-DH-m1j"/>
<constraint firstItem="6MD-Ry-R5P" firstAttribute="top" secondItem="I4a-N9-Tkv" secondAttribute="bottom" constant="8" symbolic="YES" id="obr-49-lQ8"/>
<constraint firstItem="gMW-uq-O4L" firstAttribute="top" secondItem="Jip-F1-43v" secondAttribute="bottom" constant="8" symbolic="YES" id="pCT-ct-62W"/>
<constraint firstItem="XQ5-fw-o8t" firstAttribute="leading" secondItem="S5h-Xx-HUG" secondAttribute="trailing" constant="8" symbolic="YES" id="rD3-DG-Wtc"/>
<constraint firstItem="wNM-6D-tgb" firstAttribute="top" secondItem="bh0-H9-9hI" secondAttribute="top" id="sYL-wT-x8G"/>
<constraint firstItem="wCp-nB-dda" firstAttribute="centerX" secondItem="6MD-Ry-R5P" secondAttribute="centerX" id="vdu-Z9-f5S"/>
<constraint firstItem="X9m-FK-fcs" firstAttribute="trailing" secondItem="CK9-jm-Bcc" secondAttribute="trailing" id="xJ3-0T-laP"/>
<constraint firstItem="JBW-8M-eHP" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="30" id="ynF-xG-phL"/>
</constraints>
</view>
<connections>
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
</connections>
<point key="canvasLocation" x="346" y="445.5"/>
<point key="canvasLocation" x="391" y="486"/>
</window>
<numberFormatter formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="uE9-0u-CJW" userLabel="Port Number Formatter">
<real key="minimum" value="128"/>
+5 -33
View File
@@ -19,8 +19,6 @@ let GFWListFilePath = PACRulesDirPath + "gfwlist.txt"
let ACLWhiteListFilePath = PACRulesDirPath + "chn.acl"
let ACLBackCHNFilePath = PACRulesDirPath + "backchn.acl"
let ACLGFWListFilePath = PACRulesDirPath + "gfwlist.acl"
let WhiteListDomainPACFilePath = PACRulesDirPath + "whitelist.pac"
let WhiteListIPPACFilePath = PACRulesDirPath + "whiteiplist.pac"
// Because of LocalSocks5.ListenPort may be changed
func SyncPac() {
@@ -144,32 +142,6 @@ func GeneratePACFile() -> Bool {
try result.data(using: String.Encoding.utf8)?
.write(to: URL(fileURLWithPath: PACFilePath), options: .atomic)
// Setup Pac for White List
let DomainSrc = Bundle.main.path(forResource: "whitelist", ofType: "pac")
let IPSrc = Bundle.main.path(forResource: "whiteiplist", ofType: "pac")
let DomainPacFile = try? Data(contentsOf: URL(fileURLWithPath: DomainSrc!))
let IPPACFile = try? Data(contentsOf: URL(fileURLWithPath: IPSrc!))
var DomainPACStr = String(data: DomainPacFile!,encoding: String.Encoding.utf8)!
var IPPACStr = String(data: IPPACFile!,encoding: String.Encoding.utf8)!
if(DomainPACStr.range(of: "SOCKS ") == nil) {
DomainPACStr = DomainPACStr.replacingOccurrences(of: "SOCKS5 127.0.0.1:1080;", with: "SOCKS5 127.0.0.1:\(socks5Port);SOCKS 127.0.0.1:\(socks5Port);")
}else{
DomainPACStr = DomainPACStr.replacingOccurrences(of: "SOCKS 127.0.0.1:1080;", with: "SOCKS 127.0.0.1:\(socks5Port);")
DomainPACStr = DomainPACStr.replacingOccurrences(of: "SOCKS5 127.0.0.1:1080;", with: "SOCKS5 127.0.0.1:\(socks5Port);")
}
if(IPPACStr.range(of: "SOCKS ") == nil) {
IPPACStr = IPPACStr.replacingOccurrences(of: "SOCKS5 127.0.0.1:1080;", with: "SOCKS5 127.0.0.1:\(socks5Port);SOCKS 127.0.0.1:\(socks5Port);")
}else{
IPPACStr = IPPACStr.replacingOccurrences(of: "SOCKS 127.0.0.1:1080;", with: "SOCKS 127.0.0.1:\(socks5Port);")
IPPACStr = IPPACStr.replacingOccurrences(of: "SOCKS5 127.0.0.1:1080;", with: "SOCKS5 127.0.0.1:\(socks5Port);")
}
try
DomainPACStr.data(using: String.Encoding.utf8)?.write(to: URL(fileURLWithPath: WhiteListDomainPACFilePath), options: .atomic)
try
IPPACStr.data(using: String.Encoding.utf8)?.write(to: URL(fileURLWithPath: WhiteListIPPACFilePath), options: .atomic)
return true
} catch {
@@ -221,7 +193,7 @@ func UpdatePACFromGFWList() {
}
}
func UpdatePACFromWhiteList(){
func UpdateACL(){
if !FileManager.default.fileExists(atPath: PACRulesDirPath) {
do {
try FileManager.default.createDirectory(atPath: PACRulesDirPath
@@ -230,14 +202,14 @@ func UpdatePACFromWhiteList(){
}
}
let url = UserDefaults.standard.string(forKey: "WhiteListURL")
let url = UserDefaults.standard.string(forKey: "ACLWhiteListURL")
Alamofire.request(url!)// request(.GET, url!)
.responseString {
response in
if response.result.isSuccess {
if let v = response.result.value {
do {
try v.write(toFile: WhiteListDomainPACFilePath, atomically: true, encoding: String.Encoding.utf8)
try v.write(toFile: ACLWhiteListFilePath, atomically: true, encoding: String.Encoding.utf8)
if GeneratePACFile() {
// Popup a user notification
let notification = NSUserNotification()
@@ -258,14 +230,14 @@ func UpdatePACFromWhiteList(){
}
}
let IPURL = UserDefaults.standard.string(forKey: "WhiteListIPURL")
let IPURL = UserDefaults.standard.string(forKey: "ACLAutoListURL")
Alamofire.request(IPURL!)
.responseString {
response in
if response.result.isSuccess {
if let v = response.result.value {
do {
try v.write(toFile: WhiteListIPPACFilePath, atomically: true, encoding: String.Encoding.utf8)
try v.write(toFile: ACLGFWListFilePath, atomically: true, encoding: String.Encoding.utf8)
if GeneratePACFile() {
// Popup a user notification
let notification = NSUserNotification()
@@ -33,7 +33,7 @@
"PSg-XK-qhl.title" = "本地 PAC 监听端口:";
/* Class = "NSTextFieldCell"; title = "White List URL:"; ObjectID = "aif-uV-Lxk"; */
"aif-uV-Lxk.title" = "白名单列表 URL:";
"aif-uV-Lxk.title" = "ACL 白名单列表 URL:";
/* Class = "NSTextFieldCell"; title = "White IP List URL:"; ObjectID = "qhu-d1-qgq"; */
"qhu-d1-qgq.title" = "白名单IP列表 URL:";
"qhu-d1-qgq.title" = "ACL GFW List 列表 URL:";