# -*- coding: utf-8 -*-

import os
import re
import emoji

# class ccpl_lib:
#     def __init__():
#         return
        
#获得一个目录下的所有子目录
def getSubFolderList(fpath):
    subList=[]
    sPath=fpath
    if(sPath == ""):
        return subList
    
    sPath = sPath.replace("/", "\\")
    if sPath[-1] != "\\":
        sPath = sPath+"\\"
    aList = os.listdir(sPath)
    for xFolder in aList:
        pDir = sPath + xFolder
        if os.path.isdir(pDir):
            subList.append(xFolder)
            
    return subList


#无效的微博用户UID列表，去除一些营销号
invalidUIDs = [
    '1079602047', '1372396627', '1557484761', '1604363024', '1646929462', '1658846343', 
    '1748072203', '1744482463', '1760945071', '1777381471', 
    '1802130297', '1814252490', '1871681184', '1889891435', '1948454493', '1968327527', '1974561081', 
    '2008482491', '2062752135', '2063516535', '2089629425', 
    '2102069262', '2112414684', '2148712632', 
    '2247175972', '2270484545', '2272374655', '2281600681', '2294024267', 
    '2329755841', 
    '2415587822', '2449163974', '2461294707', '2473450421', '2526215890', '2530364113', '2569726620', 
    '2610727707', '2658991294', '2694656810', '2708377444', '2794060445'
        ]

#删除微博中的一些话题
invalidKeys = [
    '#让红包飞#', '#美拍#', '#亚洲新歌榜#', '#微盘签到#', '#微盘手机签到#', '#集卡开鸿运#',
    '#带着微博去旅行#', '#微博之夜#', '通过#唱吧#录制', '#签到领红包#',
    '#明星势力榜#', '#新版微博#', '#阴阳师手游#', '#森林驿站#', '#电视剧大赏#',
    '#资金流向#',  '#剑网3#', '#百词斩#', '#虾米音乐#', '#随手拍#', '#微博达人#', '#奥运加油#', 
    '#德州扑克#', '#LUCKY UNIQLO LINE#', '#啪啪#', '#啪啪升级了#', 
    '#微博客户端秋季版#', '#微博客户端夏日版#', '#微博客户端冬季版#',
    '#德克萨斯扑克#', '#我正在听#', '#明星ALL榜#', '#三国来了#', 
    '#美图秀秀Android版#', '#微博养牛事事牛#', '#微博等级专享礼#', 
    '#微群一周年#', '#寻龙记#', '#乱世天下#', '#美梦成真#', '#扇贝打卡#', 
    '#我运动我美丽#', '使用#秒拍#录制', '#狗仔团#', '#微博亮了#', '#中级达人#', '#高级达人#', 
    '#双11爆款清单#', '#让红包飞的红包#', '#有奖转发#', '#小8每日推荐款#', 
    '#我要TA的微群明星勋章#', '#双11来了#', '#快的打车代金券#', '#快的打车红包#', '#微博是一种生活#', 
    '#围观世界杯领现金#', '#电脑达人晒开机#', '#熊猫守护者#', '#求签啦#', 
    '#3月14日派节 让友情像π一样无限#', '#全民K歌#', '#微博桌面#',  '#人身攻击#', 
    '#微博King和Queen#', '#2018世界杯#', '#中国电视好演员#', '#我要投票#', '#微城市#', 
    '刚注册的#喜马拉雅#', '#我的会员报告#', '来看看我的#照片电影#', '#微博橱窗#', 
    '#微博综艺大赏#', '#集福牛开福运#', '#最关心我的朋友#', '#最粉丝#', '#我的最佳Fans#', '#谁最At我#', 
    '#谢谢你关注我#', '#拉手网#', '#金骨朵网络影视盛典#', '#我的星座很招财#', '#身份通#', 
    '#爱问共享资料#', '#吴亦凡#', '#勇闯天涯#', '#战疫打卡行动#', '#VeryCD资源收藏#', 
    '#生态行动助力中国#', '#i看美剧播出提醒#', '#i看美剧今日播出提醒#', '#历史上的今天#', '#微分享大赛#', 
    '#小小乐园#', '#转!我喜欢#', '#走你2012#', '活力优益C#喝彩世界杯#', '#5sing#', 
    '#闹闹女巫店#', '#4D微互动电影#', '#恋与制作人#', '#我是微客族#', '#范冰冰的红包#', 
    '#多米音乐#', '#推荐#', '#火星微#', '#彭于晏的红包#', '#微博会员福利#', 
    '#大众点评网同城活动#', '#跟新浪看热点#', '#新浪看点#', '#星光大赏#', 
    '#音悦Tai#', '#警方提示#', '#寿命计算器#', '#微公益#', '#让爱回家#', '#星光公益我愿意#', '#微博星公益#', 
    '#魔法欢乐季#', '#361°伦敦行动#', '#超级红人节#', '#HTC炫灵感 潮告白#', '#It’s舒化Milk#', 
    '#微博故事领红包#', '#angelababy的红包#', '#开通微吧#', '#运动教室#', 
    '#365天生日花#', '等级是#银牌#', '我正在手机上用#微信#', '#魔法微博签到#', 
    '#双11不差钱#', '#微博最愛萬千星輝選舉#', '#送给爱豆的新年礼物#', '#微博跨年狂欢节#', 
    '#朱一龙2021朱事皆宜#', '#猜涨跌赢大奖#', '#2021新浪新闻红包季#', '#CBA球队势力榜#', 
    'Post Weibo feed', '#阳光信用#', '#新浪UP榜#', '#东方财富#', '#陪你过年#', '#春晚pick站#', 
    '#微博剧集榜#', '#开心赚宝#', '#会员五周年#', '#微博卡片背景#', '#领年终奖啦#', 
    '#微盘iOS客户端#', '#达人晒积分#', '#我是音乐潮人#', '#大话骰#', '#奔放态小度#', 
    '#佩戴小国旗#球迷大站队', '#最真微代表#', '#我和小伙伴的2013#', '#热搜疯狂打call#', 
    '#2013微博之夜#', '#我的双11#', '#微博电影之夜#', '#领败家补贴#', 
    '阴阳师手游超话', '#Soul##reallady#', '#2021LPL#', '#蓝色生命线#', '#淘宝让红包飞#', '彩虹国际代购',
    '# ⚡ #', '#  阿云嘎粉丝做公益#', '# 精选好货#', '#  平安365#', '# 图片 赖鸿春淘小铺商城#',
    '#  wyb #', '# 微博好物生活节#', '# massage#', '#  微博视频号打卡计划#',
    '#  @快手 我正在快手看 ，一起来吧！ #', '# 乐队人气大赛 乐队一夏#',
    '#  扇贝阅读，陪你用英文看世界。#', '# 精选好货 东小店  精选好货#', '# 记录世界 记录你#'
        ]
    
#对微博文本内容进行清洗
def clean(ctext):

    # 去除正文中的@和回复/转发中的用户名
    ctext = re.sub(r"(回复)?(//)?\s*@\S*?\s*(:| |$)", " ", ctext)
    
    # 去除表情符号
    ctext = re.sub(r"\[\S+\]", "", ctext)
    
    # 保留话题内容
    # ctext = re.sub(r"#\S+#", "", ctext)
    
    # 去除网址
    ctext = re.sub(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', '', ctext, flags=re.IGNORECASE)

    # 去除转发
    ctext = ctext.replace("转发微博", "")
    ctext = ctext.replace("Repost", "")
    ctext = ctext.replace("repost", "")
    
    ctext = ctext.replace('\u200b', '')
    
    # 去掉emoji表情
    ctext = re.sub('(\:.*?\:)', '', emoji.demojize(ctext))
                
    # 合并正文中过多的空格，去除两边的空格
    ctext = re.sub(r"\s+", " ", ctext).strip()
    
    if(ctext == '。' or ctext == '转'):
        ctext = ''
    
    return ctext.strip()

# 判断是否为无效微博用户
def invalidUID(utext):
    for ikey in invalidUIDs:
        if(utext == ikey):
            return True
    return False

# 判断是否为无效的微博
def invalidStatus(stext):
    for ikey in invalidKeys:
        if(stext.find(ikey) >= 0):
            return True
        
    if(stext.isdigit()):
        return True
    
    if(stext == '转发'):
        return True
    
    return False