加入cctv,地方台等级别分类
This commit is contained in:
parent
f87ad871f9
commit
efad90acc9
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
class Area (object):
|
||||
def __init__ (self) :
|
||||
pass
|
||||
|
||||
def classify (self, string) :
|
||||
level = 4
|
||||
provincList = self.provinces()
|
||||
cityList = self.cities()
|
||||
|
||||
if 'cctv' in string or 'CCTV' in string :
|
||||
level = 1
|
||||
else:
|
||||
for item in provincList :
|
||||
if item in string :
|
||||
level = 2
|
||||
if level == 4 :
|
||||
for val in cityList.values() :
|
||||
for item in val :
|
||||
if item in string :
|
||||
level = 3
|
||||
|
||||
return level
|
||||
|
||||
def provinces (self) :
|
||||
return ['北京', '广东', '山东', '江苏', '河南', '上海', '河北', '浙江', '香港', '陕西', '湖南', '重庆', '福建', '天津', '云南', '四川', '广西', '安徽', '海南', '江西', '湖北', '山西', '辽宁', '台湾', '黑龙江', '内蒙古', '澳门', '贵州', '甘肃', '青海', '新疆', '西藏', '吉林', '宁夏', '凤凰']
|
||||
|
||||
def cities (self) :
|
||||
return{
|
||||
'北京': ['朝阳', '海淀', '通州', '房山', '丰台', '昌平', '大兴', '顺义', '西城', '延庆', '石景山', '宣武', '怀柔', '崇文', '密云', '东城', '门头沟', '平谷'],
|
||||
'上海': ['松江', '宝山', '金山', '嘉定', '南汇', '青浦', '浦东新', '奉贤', '闵行', '徐汇', '静安', '黄浦', '普陀', '杨浦', '虹口', '闸北', '长宁', '崇明', '卢湾'],
|
||||
'广东': ['东莞', '广州', '中山', '深圳', '惠州', '江门', '珠海', '汕头', '佛山', '湛江', '河源', '肇庆', '潮州', '清远', '韶关', '揭阳', '阳江', '云浮', '茂名', '梅州', '汕尾'],
|
||||
'山东': ['济南', '青岛', '临沂', '济宁', '菏泽', '烟台', '泰安', '淄博', '潍坊', '日照', '威海', '滨州', '东营', '聊城', '德州', '莱芜', '枣庄'],
|
||||
'江苏': ['苏州', '徐州', '盐城', '无锡', '南京', '南通', '连云港', '常州', '扬州', '镇江', '淮安', '泰州', '宿迁'],
|
||||
'河南': ['郑州', '南阳', '新乡', '安阳', '洛阳', '信阳', '平顶山', '周口', '商丘', '开封', '焦作', '驻马店', '濮阳', '三门峡', '漯河', '许昌', '鹤壁', '济源'],
|
||||
'河北': ['石家庄', '唐山', '保定', '邯郸', '邢台', '河北', '沧州', '秦皇岛', '张家口', '衡水', '廊坊', '承德'],
|
||||
'浙江': ['温州', '宁波', '杭州', '台州', '嘉兴', '金华', '湖州', '绍兴', '舟山', '丽水', '衢州'],
|
||||
'陕西': ['西安', '咸阳', '宝鸡', '汉中', '渭南', '安康', '榆林', '商洛', '延安', '铜川'],
|
||||
'湖南': ['长沙', '邵阳', '常德', '衡阳', '株洲', '湘潭', '永州', '岳阳', '怀化', '郴州', '娄底', '益阳', '张家界', '湘西州'],
|
||||
'重庆': ['江北', '渝北', '沙坪坝', '九龙坡', '万州', '永川', '南岸', '酉阳', '北碚', '涪陵', '秀山', '巴南', '渝中', '石柱', '忠县', '合川', '大渡口', '开', '长寿', '荣昌', '云阳', '梁平', '潼南', '江津', '彭水', '璧山', '綦江', '大足', '黔江', '巫溪', '巫山', '垫江', '丰都', '武隆', '万盛', '铜梁', '南川', '奉节', '双桥', '城口'],
|
||||
'福建': ['漳州', '泉州', '厦门', '福州', '莆田', '宁德', '三明', '南平', '龙岩'],
|
||||
'天津': ['和平', '北辰', '河北', '河西', '西青', '津南', '东丽', '武清', '宝坻', '红桥', '大港', '汉沽', '静海', '宁河', '塘沽', '蓟县', '南开', '河东'],
|
||||
'云南': ['昆明', '红河州', '大理州', '文山州', '德宏州', '曲靖', '昭通', '楚雄州', '保山', '玉溪', '丽江地', '临沧地', '思茅地', '西双版纳州', '怒江州', '迪庆州'],
|
||||
'四川': ['成都', '绵阳', '广元', '达州', '南充', '德阳', '广安', '阿坝州', '巴中', '遂宁', '内江', '凉山州', '攀枝花', '乐山', '自贡', '泸州', '雅安', '宜宾', '资阳', '眉山', '甘孜州'],
|
||||
'广西': ['贵港', '玉林', '北海', '南宁', '柳州', '桂林', '梧州', '钦州', '来宾', '河池', '百色', '贺州', '崇左', '防城港'],
|
||||
'安徽': ['芜湖', '合肥', '六安', '宿州', '阜阳', '安庆', '马鞍山', '蚌埠', '淮北', '淮南', '宣城', '黄山', '铜陵', '亳州', '池州', '巢湖', '滁州'],
|
||||
'海南': ['三亚', '海口', '琼海', '文昌', '东方', '昌江', '陵水', '乐东', '五指山', '保亭', '澄迈', '万宁', '儋州', '临高', '白沙', '定安', '琼中', '屯昌'],
|
||||
'江西': ['南昌', '赣州', '上饶', '吉安', '九江', '新余', '抚州', '宜春', '景德镇', '萍乡', '鹰潭'],
|
||||
'湖北': ['武汉', '宜昌', '襄樊', '荆州', '恩施州', '孝感', '黄冈', '十堰', '咸宁', '黄石', '仙桃', '随州', '天门', '荆门', '潜江', '鄂州', '神农架林'],
|
||||
'山西': ['太原', '大同', '运城', '长治', '晋城', '忻州', '临汾', '吕梁', '晋中', '阳泉', '朔州'],
|
||||
'辽宁': ['大连', '沈阳', '丹东', '辽阳', '葫芦岛', '锦州', '朝阳', '营口', '鞍山', '抚顺', '阜新', '本溪', '盘锦', '铁岭'],
|
||||
'台湾': ['台北', '高雄', '台中', '新竹', '基隆', '台南', '嘉义'],
|
||||
'黑龙江': ['齐齐哈尔', '哈尔滨', '大庆', '佳木斯', '双鸭山', '牡丹江', '鸡西', '黑河', '绥化', '鹤岗', '伊春', '大兴安岭地', '七台河'],
|
||||
'内蒙': ['赤峰', '包头', '通辽', '呼和浩特', '乌海', '鄂尔多斯', '呼伦贝尔', '兴安盟', '巴彦淖尔盟', '乌兰察布盟', '锡林郭勒盟', '阿拉善盟'],
|
||||
'贵州': ['贵阳', '黔东南州', '黔南州', '遵义', '黔西南州', '毕节地', '铜仁地', '安顺', '六盘水'],
|
||||
'甘肃': ['兰州', '天水', '庆阳', '武威', '酒泉', '张掖', '陇南地', '白银', '定西地', '平凉', '嘉峪关', '临夏回族自治州', '金昌', '甘南州'],
|
||||
'青海': ['西宁', '海西州', '海东地', '海北州', '果洛州', '玉树州', '黄南藏族自治州'],
|
||||
'新疆': ['乌鲁木齐', '伊犁州', '昌吉州', '石河子', '哈密地', '阿克苏地', '巴音郭楞州', '喀什地', '塔城地', '克拉玛依', '和田地', '阿勒泰州', '吐鲁番地', '阿拉尔', '博尔塔拉州', '五家渠', '克孜勒苏州', '图木舒克'],
|
||||
'西藏': ['拉萨', '山南地', '林芝地', '日喀则地', '阿里地', '昌都地', '那曲地'],
|
||||
'吉林': ['吉林', '长春', '白山', '白城', '延边州', '松原', '辽源', '通化', '四平'],
|
||||
'宁夏': ['银川', '吴忠', '中卫', '石嘴山', '固原']
|
||||
}
|
||||
|
6
db.py
6
db.py
|
@ -5,7 +5,7 @@ import sqlite3
|
|||
import getpass
|
||||
import os
|
||||
|
||||
class DataBase :
|
||||
class DataBase (object) :
|
||||
|
||||
def __init__ (self) :
|
||||
self.dbAddress = os.getcwd() + '/'
|
||||
|
@ -36,7 +36,7 @@ class DataBase :
|
|||
def create (self) :
|
||||
if self.connStat == False : return False
|
||||
|
||||
sql = 'create table ' + self.table + ' (id integer PRIMARY KEY autoincrement, title text, quality text, url text, enable integer, online integer, delay integer, udTime text)'
|
||||
sql = 'create table ' + self.table + ' (id integer PRIMARY KEY autoincrement, title text, quality text, url text, level integer, enable integer, online integer, delay integer, udTime text)'
|
||||
self.cur.execute(sql)
|
||||
|
||||
def query (self, sql) :
|
||||
|
@ -60,7 +60,7 @@ class DataBase :
|
|||
|
||||
keyList = []
|
||||
valList = []
|
||||
for k, v in data.iteritems():
|
||||
for k, v in data.items():
|
||||
keyList.append(k)
|
||||
valList.append(str(v).replace('"','\"').replace("'","''"))
|
||||
|
||||
|
|
6
main.py
6
main.py
|
@ -6,8 +6,9 @@ import db
|
|||
import time
|
||||
import re
|
||||
from plugins import base
|
||||
from plugins import lista
|
||||
|
||||
class Iptv :
|
||||
class Iptv (object):
|
||||
|
||||
def __init__ (self) :
|
||||
self.T = tools.Tools()
|
||||
|
@ -18,7 +19,7 @@ class Iptv :
|
|||
urlList = Base.getSource()
|
||||
for item in urlList :
|
||||
self.addData(item)
|
||||
# self.outPut()
|
||||
self.outPut()
|
||||
print("DONE!!")
|
||||
|
||||
def addData (self, data) :
|
||||
|
@ -48,4 +49,3 @@ obj.run()
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import tools
|
|||
import time
|
||||
import re
|
||||
|
||||
class Source :
|
||||
class Source (object) :
|
||||
|
||||
def __init__ (self):
|
||||
self.T = tools.Tools()
|
||||
|
@ -41,6 +41,7 @@ class Source :
|
|||
'url' : str(item[1]),
|
||||
'quality': str(info['quality']),
|
||||
'delay' : netstat,
|
||||
'level' : str(info['level']),
|
||||
'enable' : 1,
|
||||
'online' : 1,
|
||||
'udTime' : self.now,
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import tools
|
||||
import time
|
||||
import re
|
||||
|
||||
class Source (object) :
|
||||
|
||||
def __init__ (self):
|
||||
self.T = tools.Tools()
|
||||
self.now = int(time.time() * 1000)
|
||||
|
||||
def getSource (self) :
|
||||
urlList = []
|
||||
|
||||
url = 'https://www.jianshu.com/p/2499255c7e79'
|
||||
req = [
|
||||
'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Mobile Safari/537.36',
|
||||
]
|
||||
res = self.T.getPage(url, req)
|
||||
|
||||
if res['code'] == 200 :
|
||||
pattern = re.compile(r"<code(.*?)</code>", re.I|re.S)
|
||||
tmp = pattern.findall(res['body'])
|
||||
|
||||
pattern = re.compile(r"#EXTINF:0,(.*?)\n#EXTVLCOPT:network-caching=1000\n(.*?)\n", re.I|re.S)
|
||||
|
||||
sourceList = pattern.findall(tmp[0])
|
||||
sourceList = sourceList + pattern.findall(tmp[1])
|
||||
|
||||
for item in sourceList :
|
||||
print('Checking:' + str(item[0]))
|
||||
netstat = self.T.chkPlayable(item[1])
|
||||
|
||||
if netstat > 0 :
|
||||
info = self.T.fmtTitle(item[0])
|
||||
|
||||
data = {
|
||||
'title' : str(info['id']) + str(info['title']),
|
||||
'url' : str(item[1]),
|
||||
'quality': str(info['quality']),
|
||||
'delay' : netstat,
|
||||
'enable' : 1,
|
||||
'online' : 1,
|
||||
'udTime' : self.now,
|
||||
}
|
||||
urlList.append(data)
|
||||
else :
|
||||
pass # MAYBE later :P
|
||||
else :
|
||||
pass # MAYBE later :P
|
||||
|
||||
return urlList
|
12
tools.py
12
tools.py
|
@ -10,10 +10,11 @@ import gzip
|
|||
import random
|
||||
import socket
|
||||
import time
|
||||
import area
|
||||
|
||||
socket.setdefaulttimeout(10.0)
|
||||
|
||||
class Tools :
|
||||
class Tools (object) :
|
||||
|
||||
def __init__ (self) :
|
||||
pass
|
||||
|
@ -97,8 +98,16 @@ class Tools :
|
|||
'id' : tmp[0].strip('-').strip(),
|
||||
'title' : tmp[1].strip('-').strip(),
|
||||
'quality': tmp[2].strip('-').strip(),
|
||||
'level' : 4,
|
||||
}
|
||||
|
||||
if result['id'] != '':
|
||||
pattern = re.compile(r"cctv[-|\s]*(\d*)", re.I)
|
||||
result['id'] = re.sub(pattern, "CCTV-\\1", result['id'])
|
||||
|
||||
Area = area.Area()
|
||||
result['level'] = Area.classify(str(result['id']) + str(result['title']))
|
||||
|
||||
return result
|
||||
|
||||
def chkPlayable (self, url) :
|
||||
|
@ -114,3 +123,4 @@ class Tools :
|
|||
return 0
|
||||
except:
|
||||
return 0
|
||||
|
||||
|
|
Loading…
Reference in New Issue