mirror of
https://github.com/vladkens/twscrape.git
synced 2026-10-10 15:17:19 -04:00
release: v0.19.2
This commit is contained in:
@@ -56,7 +56,7 @@ jobs:
|
||||
- name: Extract changelog entry
|
||||
run: |
|
||||
VERSION="${{ github.ref_name }}"
|
||||
NOTES=$(awk "/^## ${VERSION}/{found=1; next} /^## /{found=0} found" changelog.md)
|
||||
NOTES=$(awk "/^## ${VERSION}/{found=1; next} /^## /{found=0} found && !/^---$/" changelog.md)
|
||||
if [ -z "$NOTES" ]; then
|
||||
echo "Error: no changelog entry found for ${VERSION}"
|
||||
exit 1
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
## v0.19.2 – 2026-07-21
|
||||
|
||||
### Features
|
||||
- Added `wait_timeout` and `wait_interval` options to bound and tune account wait polling (#317, by @Flaburgan)
|
||||
|
||||
### Fixes
|
||||
- Fixed X client transaction ID generation to use each account's effective proxy (#319, by @kn1l)
|
||||
- Fixed X client transaction ID asset requests to use account cookies (#321, by @jonsuh)
|
||||
- Fixed X client transaction ID failures incorrectly disabling valid accounts
|
||||
|
||||
### Maintenance
|
||||
- Updated GraphQL operation IDs for current X API compatibility
|
||||
|
||||
**Full Changelog**: https://github.com/vladkens/twscrape/compare/v0.19.1...v0.19.2
|
||||
|
||||
---
|
||||
|
||||
## v0.19.1 – 2026-06-26
|
||||
|
||||
### Maintenance
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "twscrape"
|
||||
version = "0.19.1"
|
||||
version = "0.19.2"
|
||||
authors = [{ name = "vladkens", email = "[email protected]" }]
|
||||
description = "Twitter GraphQL and Search API implementation with SNScrape data models"
|
||||
readme = "readme.md"
|
||||
@@ -63,7 +63,7 @@ filterwarnings = ["ignore::DeprecationWarning"]
|
||||
exclude-newer = "7 days"
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 99
|
||||
line-length = 100
|
||||
target-version = "py310"
|
||||
|
||||
[tool.ruff.lint]
|
||||
|
||||
@@ -166,9 +166,7 @@ def print_table(meta: dict[str, MetaEntry], ops: dict[str, str], ttl_days: int):
|
||||
|
||||
stale_reasons = {"op": "op changed", "hash": "file changed"}
|
||||
if state in stale_reasons:
|
||||
updated_at = (
|
||||
datetime.fromtimestamp(item[0]).strftime("%Y-%m-%d %H:%M") if item else "—"
|
||||
)
|
||||
updated_at = datetime.fromtimestamp(item[0]).strftime("%Y-%m-%d %H:%M") if item else "—"
|
||||
print(f"{name:<28} {updated_at:>16} {stale_reasons[state]:>12} stale")
|
||||
continue
|
||||
|
||||
|
||||
+1
-3
@@ -255,9 +255,7 @@ async def test_get_for_queue_or_wait_raises_via_env(pool_mock: AccountsPool, mon
|
||||
await pool_mock.get_for_queue_or_wait("TestQueue")
|
||||
|
||||
|
||||
async def test_get_for_queue_or_wait_waits_for_locked_account(
|
||||
pool_mock: AccountsPool, monkeypatch
|
||||
):
|
||||
async def test_get_for_queue_or_wait_waits_for_locked_account(pool_mock: AccountsPool, monkeypatch):
|
||||
queue = "TestQueue"
|
||||
pool = AccountsPool(pool_mock._db_file, wait_timeout=1, wait_interval=0.1)
|
||||
await pool.add_account("user1", "pass1", "email1", "ep1")
|
||||
|
||||
+1
-3
@@ -672,9 +672,7 @@ class API:
|
||||
yield x
|
||||
|
||||
async def community_moderators(self, community_id: int, limit=-1, kv: KV = None):
|
||||
async with aclosing(
|
||||
self.community_moderators_raw(community_id, limit=limit, kv=kv)
|
||||
) as gen:
|
||||
async with aclosing(self.community_moderators_raw(community_id, limit=limit, kv=kv)) as gen:
|
||||
async for rep in gen:
|
||||
for x in parse_users(rep, limit):
|
||||
yield x
|
||||
|
||||
+1
-3
@@ -346,9 +346,7 @@ async def load_keys(soup: bs4.BeautifulSoup, clt: HttpClient) -> tuple[list[int]
|
||||
|
||||
class XClIdGen:
|
||||
@staticmethod
|
||||
async def create(
|
||||
proxy: str | None = None, cookies: dict[str, str] | None = None
|
||||
) -> "XClIdGen":
|
||||
async def create(proxy: str | None = None, cookies: dict[str, str] | None = None) -> "XClIdGen":
|
||||
# X serves a different/legacy web build to authenticated vs anonymous
|
||||
# sessions. Only authenticated sessions reliably contain the indices
|
||||
# this parser depends on (see INDICES_FILE_RE).
|
||||
|
||||
Reference in New Issue
Block a user