summaryrefslogtreecommitdiff
path: root/squid-redirect.py
diff options
context:
space:
mode:
Diffstat (limited to 'squid-redirect.py')
-rw-r--r--squid-redirect.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/squid-redirect.py b/squid-redirect.py
new file mode 100644
index 0000000..73830f4
--- /dev/null
+++ b/squid-redirect.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+"""
+ squid-redirect.py
+
+ Copyright 2018, 2019 Mind Chasers Inc,
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+"""
+
+VERSION=0.2a
+
+import re
+import sys
+import logging
+from datetime import datetime
+
+logging.basicConfig(filename='squid-redirect.log',level=logging.DEBUG)
+xxx = re.compile('\.xxx?/$')
+
+def main():
+ """
+ keep looping and processing requests
+ request format is based on url_rewrite_extras "%>a %>rm %un"
+ """
+ request = sys.stdin.readline()
+ while request:
+ [ch_id,url,ipaddr,method,user]=request.split()
+ logging.debug(datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ': ' + request +'\n')
+ response = ch_id + ' OK'
+ if 'sex' in url:
+ response += ' rewrite-url=https://example.com'
+ elif xxx.search(url):
+ response += ' status=301 url=https://example.com'
+ response += '\n'
+ sys.stdout.write(response)
+ sys.stdout.flush()
+ request = sys.stdin.readline()
+
+if __name__ == '__main__':
+ main()