Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fcb3ab50f | ||
|
|
8ef6474c90 | ||
|
|
5da28e4d89 | ||
|
|
8902955fed | ||
|
|
30429b05a5 | ||
|
|
ca266ef04b | ||
|
|
8891b35dc7 | ||
|
|
0f63e172dc | ||
|
|
c0a790a7c4 | ||
|
|
1625bf51e9 | ||
|
|
0d80c249f3 |
@@ -1 +1,4 @@
|
|||||||
include requirements.txt
|
include requirements.txt
|
||||||
|
include requirements_test.txt
|
||||||
|
exclude *.egg-info
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
pytchat is a python library for fetching youtube live chat.
|
pytchat is a python library for fetching youtube live chat.
|
||||||
"""
|
"""
|
||||||
__copyright__ = 'Copyright (C) 2019 taizan-hokuto'
|
__copyright__ = 'Copyright (C) 2019 taizan-hokuto'
|
||||||
__version__ = '0.0.1.6'
|
__version__ = '0.0.1.9'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__author__ = 'taizan-hokuto'
|
__author__ = 'taizan-hokuto'
|
||||||
__author_email__ = '55448286+taizan-hokuto@users.noreply.github.com'
|
__author_email__ = '55448286+taizan-hokuto@users.noreply.github.com'
|
||||||
__url__ = 'https://github.com/taizan-hokuto'
|
__url__ = 'https://github.com/taizan-hokuto/pytchat'
|
||||||
|
|
||||||
__all__ = ["core_async","core_multithread","processors"]
|
__all__ = ["core_async","core_multithread","processors"]
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ def _build(video_id, _ts1, _ts2, _ts3, _ts4, _ts5, topchatonly = False):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _times():
|
def _times(past_sec):
|
||||||
|
|
||||||
def unixts_now():
|
def unixts_now():
|
||||||
now = datetime.datetime.now(pytz.utc)
|
now = datetime.datetime.now(pytz.utc)
|
||||||
@@ -132,12 +132,18 @@ def _times():
|
|||||||
|
|
||||||
_ts1= n - random.uniform(0,1*3)
|
_ts1= n - random.uniform(0,1*3)
|
||||||
_ts2= n - random.uniform(0.01,0.99)
|
_ts2= n - random.uniform(0.01,0.99)
|
||||||
_ts3= n - 60*60 + random.uniform(0,1)
|
_ts3= n - past_sec + random.uniform(0,1)
|
||||||
_ts4= n - random.uniform(10*60,60*60)
|
_ts4= n - random.uniform(10*60,60*60)
|
||||||
_ts5= n - random.uniform(0.01,0.99)
|
_ts5= n - random.uniform(0.01,0.99)
|
||||||
return list(map(lambda x:int(x*1000000),[_ts1,_ts2,_ts3,_ts4,_ts5]))
|
return list(map(lambda x:int(x*1000000),[_ts1,_ts2,_ts3,_ts4,_ts5]))
|
||||||
|
|
||||||
|
|
||||||
def getparam(video_id):
|
def getparam(video_id,past_sec = 60):
|
||||||
return _build(video_id,*_times())
|
'''
|
||||||
|
Parameter
|
||||||
|
---------
|
||||||
|
past_sec : int
|
||||||
|
seconds to load past chat data
|
||||||
|
'''
|
||||||
|
return _build(video_id,*_times(past_sec))
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class Chatdata:
|
|||||||
|
|
||||||
async def tick_async(self):
|
async def tick_async(self):
|
||||||
if self.interval == 0:
|
if self.interval == 0:
|
||||||
await asyncio.sleep(3)
|
await asyncio.sleep(0.5)
|
||||||
return
|
return
|
||||||
await asyncio.sleep(self.interval/len(self.items))
|
await asyncio.sleep(self.interval/len(self.items))
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
aiohttp==3.6.0
|
aiohttp
|
||||||
aioresponses==0.6.0
|
pytz
|
||||||
mock==3.0.5
|
requests
|
||||||
mocker==1.1.1
|
urllib3
|
||||||
pytest==5.1.2
|
|
||||||
pytest-mock==1.10.4
|
|
||||||
pytz==2019.2
|
|
||||||
requests==2.22.0
|
|
||||||
urllib3==1.25.3
|
|
||||||
5
requirements_test.txt
Normal file
5
requirements_test.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
aioresponses
|
||||||
|
mock
|
||||||
|
mocker
|
||||||
|
pytest
|
||||||
|
pytest-mock
|
||||||
34
setup.py
34
setup.py
@@ -1,14 +1,18 @@
|
|||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages, Command
|
||||||
from codecs import open
|
from codecs import open
|
||||||
from os import path
|
from os import path, system
|
||||||
import re
|
import re
|
||||||
|
|
||||||
package_name = "pytchat"
|
package_name = "pytchat"
|
||||||
|
|
||||||
root_dir = path.abspath(path.dirname(__file__))
|
root_dir = path.abspath(path.dirname(__file__))
|
||||||
|
|
||||||
def _requires_from_file(filename):
|
def _requirements():
|
||||||
return open(filename).read().splitlines()
|
return [name.rstrip() for name in open(path.join(root_dir, 'requirements.txt')).readlines()]
|
||||||
|
|
||||||
|
def _test_requirements():
|
||||||
|
return [name.rstrip() for name in open(path.join(root_dir, 'requirements_test.txt')).readlines()]
|
||||||
|
|
||||||
|
|
||||||
with open(path.join(root_dir, package_name, '__init__.py')) as f:
|
with open(path.join(root_dir, package_name, '__init__.py')) as f:
|
||||||
init_text = f.read()
|
init_text = f.read()
|
||||||
@@ -27,18 +31,30 @@ assert url
|
|||||||
with open('README.md', encoding='utf-8') as f:
|
with open('README.md', encoding='utf-8') as f:
|
||||||
long_description = f.read()
|
long_description = f.read()
|
||||||
|
|
||||||
|
class CleanCommand(Command):
|
||||||
|
"""Custom clean command to tidy up the project root."""
|
||||||
|
user_options = []
|
||||||
|
def initialize_options(self):
|
||||||
|
pass
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
def run(self):
|
||||||
|
#system('rm -vrf ./build ./dist ./*.pyc ./*.tgz ./*.egg-info')
|
||||||
|
system('rmdir /Q /S pytchat.egg-info, dist')
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name=package_name,
|
name=package_name,
|
||||||
packages=[package_name],
|
packages=find_packages(),
|
||||||
|
|
||||||
version=version,
|
version=version,
|
||||||
|
|
||||||
url=url,
|
url=url,
|
||||||
author=author,
|
author=author,
|
||||||
author_email=author_email,
|
author_email=author_email,
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
long_description_content_type='text/markdown',
|
long_description_content_type='text/markdown',
|
||||||
license=license,
|
license=license,
|
||||||
|
install_requires=_requirements(),
|
||||||
|
tests_require=_test_requirements(),
|
||||||
description="a python library for fetching youtube live chat.",
|
description="a python library for fetching youtube live chat.",
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Natural Language :: Japanese',
|
'Natural Language :: Japanese',
|
||||||
@@ -52,5 +68,7 @@ setup(
|
|||||||
'License :: OSI Approved :: MIT License',
|
'License :: OSI Approved :: MIT License',
|
||||||
],
|
],
|
||||||
keywords='youtube livechat asyncio',
|
keywords='youtube livechat asyncio',
|
||||||
install_requires=_requires_from_file('requirements.txt')
|
cmdclass={
|
||||||
|
'clean': CleanCommand,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
Reference in New Issue
Block a user