Skip to content

Releases: CybersecurityForDemocracy/tiktok-library

v0.1.2

20 Oct 21:46
c0eb683
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.1...v0.1.2

v0.1.1

28 Aug 20:06
4d2522d
Compare
Choose a tag to compare

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

22 Aug 14:51
5321411
Compare
Choose a tag to compare
v0.1.1-rc1 Pre-release
Pre-release

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

08 Aug 17:34
73fc673
Compare
Choose a tag to compare

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

30 Jul 17:35
63462db
Compare
Choose a tag to compare
v0.1.0-rc4 Pre-release
Pre-release

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

30 Jul 17:01
45212ff
Compare
Choose a tag to compare
v0.1.0-rc3 Pre-release
Pre-release

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

26 Jul 20:11
4303915
Compare
Choose a tag to compare
v0.1.0-rc2 Pre-release
Pre-release

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

26 Jul 19:51
10ff858
Compare
Choose a tag to compare
v0.1.0-rc1 Pre-release
Pre-release

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

25 Jul 20:05
dd1e498
Compare
Choose a tag to compare

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 to VideoQueryConfig
  • renamed many things in api_client.py:
    • All instances of Tiktok (ie 2nd t lowercase) have been standardized to TikTok
    • TikTokRequest is now TikTokVideoRequest, and TikTokResponse is now TikTokVideoResponse
    • Request and response objects created for Comments and UserInfo
  • Query is now VideoQuery
  • 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 in run-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 in run-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

23 Jul 18:36
f982b7c
Compare
Choose a tag to compare
v0.0.3-rc4 Pre-release
Pre-release

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 to VideoQueryConfig
  • renamed many things in api_client.py:
    • All instances of Tiktok (ie 2nd t lowercase) have been standardized to TikTok
    • TikTokRequest is now TikTokVideoRequest, and TikTokResponse is now TikTokVideoResponse
    • Request and response objects created for Comments and UserInfo
  • Query is now VideoQuery
  • 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 in run-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 in run-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