Releases: CybersecurityForDemocracy/tiktok-library
v0.1.2
What's Changed
- Add command for how to tag docker image as latest in "publishing a new version" section by @macpd in #84
- Removes remaining client_id test by @lexiekateb in #85
- Update test command with correct function parameters by @BrunoGomesCoelho in #86
- Fix typo and type hint by @BrunoGomesCoelho in #87
- strip null character from values before putting them to DB by @macpd in #92
- stamp v0.1.2 by @macpd in #93
New Contributors
- @lexiekateb made their first contribution in #85
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
- add pypi version badge to README.md by @macpd in #76
- add --video-id and --max-days-per-query flags by @macpd in #77
- Annotate typer.Option types as Optional if they have a default of None. ignore use of Optional in ruff config since typer relies on it. by @macpd in #78
- make --query-file-json a repeatedable flag so that mutliple query files can be passed and run serially. remove single_day_driver since main_driver can do that. by @macpd in #79
- document using --query-file-json multiple times, and new flag --video-id in, README by @macpd in #81
- allow --video-id to be used multiple times in same command by @macpd in #82
- stamp version v0.1.1-rc1 by @macpd in #80
- stamp v0.1.1 by @macpd in #83
Full Changelog: v0.1.0...v0.1.1
v0.1.1-rc1
What's Changed
- add pypi version batch to README.md by @macpd in #76
- add --video-id and --max-days-per-query flags by @macpd in #77
- Annotate typer.Option types as Optional if they have a default of None. ignore use of Optional in ruff config since typer relies on it. by @macpd in #78
- make --query-file-json a repeatedable flag so that mutliple query files can be passed and run serially. remove single_day_driver since main_driver can do that. by @macpd in #79
- document using --query-file-json multiple times, and new flag --video-id in, README by @macpd in #81
- allow --video-id to be used multiple times in same command by @macpd in #82
- stamp version v0.1.1-rc1 by @macpd in #80
Full Changelog: v0.1.0...v0.1.1-rc1
v0.1.0
While this is technically a big bump in version this release is more of a 0.0.3 bug fix release. I realized we should at least have 1 subversion to increment when fixing bugs, such as the bug fixed in #67
What's Changed
- add username (inferred from request) to fetched user info response, since API does not include it by @macpd in #67
- stamp version v0.1.0-rc1 by @macpd in #68
- update build command, and add docker image build to release steps by @macpd in #69
- update to version v0.1.0-rc2 since last version was incorrectly built and uploaded by @macpd in #70
- add num_api_requests_sent to message for API response 429 (quota exhausted) received by @macpd in #71
- Stamp version v0.1.0-rc3 by @macpd in #72
- Fix formatting and remove newline escape char in exception message. by @macpd in #73
- stamp v0.1.0-rc4 by @macpd in #74
- stamp version v0.1.0 by @macpd in #75
Full Changelog: v0.0.3...v0.1.0
Also see release v0.0.3: https://github.com/CybersecurityForDemocracy/tiktok-library/releases/tag/v0.0.3
v0.1.0-rc4
While this is technically a big bump in version this release is more of a 0.0.3 bug fix release. I realized we should at least have 1 subversion to increment when fixing bugs, such as the bug fixed in #67
What's Changed
- add username (inferred from request) to fetched user info response, since API does not include it by @macpd in #67
- stamp version v0.1.0-rc1 by @macpd in #68
- update build command, and add docker image build to release steps by @macpd in #69
- update to version v0.1.0-rc2 since last version was incorrectly built and uploaded by @macpd in #70
- add num_api_requests_sent to message for API response 429 (quota exhausted) received by @macpd in #71
- Stamp version v0.1.0-rc3 by @macpd in #72
- Fix formatting and remove newline escape char in exception message. by @macpd in #73
- stamp v0.1.0-rc4 by @macpd in #74
Full Changelog: v0.0.3...v0.1.0-rc4
Also see release v0.0.3: https://github.com/CybersecurityForDemocracy/tiktok-library/releases/tag/v0.0.3
v0.1.0-rc3
While this is technically a big bump in version this release is more of a 0.0.3 bug fix release. I realized we should at least have 1 subversion to increment when fixing bugs, such as the bug fixed in #67
What's Changed
- add username (inferred from request) to fetched user info response, since API does not include it by @macpd in #67
- stamp version v0.1.0-rc1 by @macpd in #68
- update build command, and add docker image build to release steps by @macpd in #69
- update to version v0.1.0-rc2 since last version was incorrectly built and uploaded by @macpd in #70
- add num_api_requests_sent to message for API response 429 (quota exhausted) received by @macpd in #71
- Stamp version v0.1.0-rc3 by @macpd in #72
Full Changelog: v0.0.3...v0.1.0-rc3
Also see release v0.0.3: https://github.com/CybersecurityForDemocracy/tiktok-library/releases/tag/v0.0.3
v0.1.0-rc2
While this is technically a big bump in version this release is more of a 0.0.3 bug fix release and re-do of v0.1.0-rc1 which was uploaded with the wrong version in pyproject.toml. I realized we should at least have 1 subversion to increment when fixing bugs, such as the bug fixed in #67
What's Changed
- add username (inferred from request) to fetched user info response, since API does not include it by @macpd in #67
- stamp version v0.1.0-rc1 by @macpd in #68
- update build command, and add docker image build to release steps by @macpd in #69
- update to version v0.1.0-rc2 since last version was incorrectly built and uploaded by @macpd in #70
Full Changelog: v0.0.3...v0.1.0-rc2
Also see release v0.0.3: https://github.com/CybersecurityForDemocracy/tiktok-library/releases/tag/v0.0.3
v0.1.0-rc1
While this is technically a big bump in version this release is more of a 0.0.3 bug fix release. I realized we should at least have 1 subversion to increment when fixing bugs, such as the bug fixed in #67
What's Changed
- add username (inferred from request) to fetched user info response, since API does not include it by @macpd in #67
- stamp version v0.1.0-rc1 by @macpd in #68
Full Changelog: v0.0.3...v0.1.0-rc1
Also see changelog from 0.0.2: v0.0.2...v0.0.3
v0.0.3
What's Changed
This is major refactor with new features. Notably:
- package now supports fetching and storing of video comments and user info (see README for documentation on how to use).
- vars related to a specific query (ie query, start_date, etc) were moved from
ApiClient
config toVideoQueryConfig
- renamed many things in api_client.py:
- All instances of
Tiktok
(ie 2nd t lowercase) have been standardized toTikTok
TikTokRequest
is nowTikTokVideoRequest
, andTikTokResponse
is nowTikTokVideoResponse
- Request and response objects created for Comments and UserInfo
- All instances of
Query
is nowVideoQuery
- Ability to limit number of API requests. both from CLI, and when using
TikTokApiClient
. Allowing reduction of precious API quota usage - CLI will chunk queries with start and end dates more 7 days apart into multiple queries to reduce API overload (ie 500 responses). Previous we only did this for start and end dates more 28 days apart.
--catch-up-from-start-date
flag inrun-repeated
command to catch up from a date (ie fetch without delay/sleep until fetches catch up to specified date).--crawl-interval
renamed to--repeat-interval
inrun-repeated
command
PRs in this release
- hatch env and script to run jupyter notebook by @macpd in #20
- update README for pypi. by @macpd in #40
- Move CLI files into new subdir cli/, rename cli_data_acquisition.py -> cli/main.py and custom_types.py -> cli/custom_argument_types.py by @macpd in #39
- fix capitalization of TikTok in class names. s/Tiktok/TikTok/ by @macpd in #41
- Add max_requests var to ApiClientConfig, TikTokApiClient will stop (api_results_iter, fetch_all, etc cease) before exceeding this limit even if API indicates more results available. by @macpd in #43
- use attrs.converters.default_if_none instead of @_<member_name>.default decorator. by @macpd in #42
- Revert "use attrs.converters.default_if_none instead of @_<member_name>.default decorator." by @macpd in #44
- fix attrs.converters.default_if_none usage. ie redo #42 by @macpd in #45
- reduce _DAYS_PER_ITER (ie maximum number of days between start and end before split crawl into smaller time windows) 28 -> 7. this reduces 500 errors in larger queries by @macpd in #47
- Add support for fetching and storing user info and comments by @macpd in #46
- Fix api_rate_limit_wait_strategy not passed to request client by @macpd in #51
- change logging format based on level, for debug add function name. omit time and filename in rich logging as we already have those in the log format by @macpd in #52
- move common test funcs and fixutres to commons.py since test_utils.py do not test utils.py by @macpd in #53
- Fix infinite loop in run_repeated by @macpd in #54
- cleanup formatting and remove code that should be inherited in exceptions in api_client.py by @macpd in #55
- Add feature in run_repeated to catch up from a date (ie fetch without delay/sleep until fetches catch up to specified date). by @macpd in #49
- fix use of utils.crawl_date_window_is_behind_today (ie do not negate it, ironically I rewrote it so i did not have to negate it). add debug logging to crawl_date_window_is_behind_today by @macpd in #57
- split catch up from date, and normal repeate on interval logic into separate loops in run_repeated. by @macpd in #59
- update version to 0.0.3-rc3 by @macpd in #60
- count all requests sent in requests client num_api_requests_sent not just successful requests (b/c API counts those against quota) by @macpd in #61
- stamp version to 0.0.3-rc4 by @macpd in #62
- rename docker compose config and Dockerfile that is used postgres integration test to similar names. update path where used by @macpd in #63
- Dockerfile to build image from specified package version from pip by @macpd in #64
- Document how to publish new package version by @macpd in #65
- Stamp release v0.0.3 by @macpd in #66
Full Changelog: v0.0.2...v0.0.3
v0.0.3-rc4
What's Changed
This is major refactor with new features. Notably:
- package now supports fetching and storing of video comments and user info (see README for documentation on how to use).
- vars related to a specific query (ie query, start_date, etc) were moved from
ApiClient
config toVideoQueryConfig
- renamed many things in api_client.py:
- All instances of
Tiktok
(ie 2nd t lowercase) have been standardized toTikTok
TikTokRequest
is nowTikTokVideoRequest
, andTikTokResponse
is nowTikTokVideoResponse
- Request and response objects created for Comments and UserInfo
- All instances of
Query
is nowVideoQuery
- Ability to limit number of API requests. both from CLI, and when using
TikTokApiClient
. Allowing reduction of precious API quota usage - CLI will chunk queries with start and end dates more 7 days apart into multiple queries to reduce API overload (ie 500 responses). Previous we only did this for start and end dates more 28 days apart.
--catch-up-from-start-date
flag inrun-repeated
command to catch up from a date (ie fetch without delay/sleep until fetches catch up to specified date).--crawl-interval
renamed to--repeat-interval
inrun-repeated
command
PRs in this release
- hatch env and script to run jupyter notebook by @macpd in #20
- update README for pypi. by @macpd in #40
- Move CLI files into new subdir cli/, rename cli_data_acquisition.py -> cli/main.py and custom_types.py -> cli/custom_argument_types.py by @macpd in #39
- fix capitalization of TikTok in class names. s/Tiktok/TikTok/ by @macpd in #41
- Add max_requests var to ApiClientConfig, TikTokApiClient will stop (api_results_iter, fetch_all, etc cease) before exceeding this limit even if API indicates more results available. by @macpd in #43
- use attrs.converters.default_if_none instead of @_<member_name>.default decorator. by @macpd in #42
- Revert "use attrs.converters.default_if_none instead of @_<member_name>.default decorator." by @macpd in #44
- fix attrs.converters.default_if_none usage. ie redo #42 by @macpd in #45
- reduce _DAYS_PER_ITER (ie maximum number of days between start and end before split crawl into smaller time windows) 28 -> 7. this reduces 500 errors in larger queries by @macpd in #47
- Add support for fetching and storing user info and comments by @macpd in #46
- Fix api_rate_limit_wait_strategy not passed to request client by @macpd in #51
- change logging format based on level, for debug add function name. omit time and filename in rich logging as we already have those in the log format by @macpd in #52
- move common test funcs and fixutres to commons.py since test_utils.py do not test utils.py by @macpd in #53
- Fix infinite loop in run_repeated by @macpd in #54
- cleanup formatting and remove code that should be inherited in exceptions in api_client.py by @macpd in #55
- Add feature in run_repeated to catch up from a date (ie fetch without delay/sleep until fetches catch up to specified date). by @macpd in #49
- fix use of utils.crawl_date_window_is_behind_today (ie do not negate it, ironically I rewrote it so i did not have to negate it). add debug logging to crawl_date_window_is_behind_today by @macpd in #57
- split catch up from date, and normal repeate on interval logic into separate loops in run_repeated. by @macpd in #59
- update version to 0.0.3-rc3 by @macpd in #60
- count all requests sent in requests client num_api_requests_sent not just successful requests (b/c API counts those against quota) by @macpd in #61
- stamp version to 0.0.3-rc4 by @macpd in #62
Full Changelog: v0.0.2...v0.0.3-rc4