#!/usr/bin/env python # hateserv irc bot - developed by acidvegas in python (https://git.acid.vegas/hateserv) import http.client import json import re import urllib.parse from googleapiclient.discovery import build # https://pypi.org/project/google-api-python-client/ #import tweepy # https://pypi.org/project/tweepy/ # API Keys google_api_key = 'redacted' # https://console.developers.google.com/ google_cse_id = 'redacted' # https://cse.google.com/ twitter_bearer_token = 'redacted' twitter_access_token = 'redacted' twitter_access_token_secret = 'redacted' twitter_client_id = 'redacted' twitter_client_secret = 'redacted' twitter_api_key = 'redacted' twitter_api_secret = 'redacted' def between(source, start, stop): data = re.compile(start + '(.*?)' + stop, re.IGNORECASE|re.MULTILINE).search(source) return data.group(1) if data else False def geturl(url, endpoint, headers={}): conn = http.client.HTTPSConnection(url, timeout=15) conn.request('GET', endpoint, headers=headers) response = conn.getresponse().read() conn.close() return response def google(query): service = build('customsearch', 'v1', developerKey=google_api_key, cache_discovery=False).cse() results = service.list(q=query, cx=google_cse_id, num=10).execute() return results['items'] if results else False def netsplit(option, query): if option == 'channels': data = str(geturl('netsplit.de', '/channels/?chat='+query)) for i in ('​','','','','','',''): data = data.replace(i, '') results = re.findall('
(.*?)
', data, re.IGNORECASE|re.MULTILINE) if results: channels = list() for item in results: channel = between(item, '', '') network = between(item, '', '') users = between(item, ' - ', ' users - ') if 'current topic:' in item: topic = between(item, 'current topic: ', '
').replace('
','') else: topic = 'no topic set for channel' channels.append({'channel':channel, 'network':network, 'users':users, 'topic':topic}) return channels else: return False elif option == 'networks': data = str(geturl('netsplit.de', '/networks/')) results = re.findall('