Allow us to make the HTTP timeout configurable
This commit is contained in:
parent
9a5649e0b3
commit
a624f1ae58
3 changed files with 7 additions and 2 deletions
2
.github/workflows/get_context.yml
vendored
2
.github/workflows/get_context.yml
vendored
|
@ -32,7 +32,7 @@ jobs:
|
||||||
path: artifacts
|
path: artifacts
|
||||||
- name: Get Directory structure
|
- name: Get Directory structure
|
||||||
run: ls -lR
|
run: ls -lR
|
||||||
- run: python find_posts.py --access-token=${{ secrets.ACCESS_TOKEN }} --server=${{ vars.MASTODON_SERVER }} --reply-interval-in-hours=${{ vars.REPLY_INTERVAL_IN_HOURS || 0 }} --home-timeline-length=${{ vars.HOME_TIMELINE_LENGTH || 0 }} --max-followings=${{ vars.MAX_FOLLOWINGS || 0 }} --user=${{ vars.USER }} --max-followers=${{ vars.MAX_FOLLOWERS || 0 }}
|
- run: python find_posts.py --access-token=${{ secrets.ACCESS_TOKEN }} --server=${{ vars.MASTODON_SERVER }} --reply-interval-in-hours=${{ vars.REPLY_INTERVAL_IN_HOURS || 0 }} --home-timeline-length=${{ vars.HOME_TIMELINE_LENGTH || 0 }} --max-followings=${{ vars.MAX_FOLLOWINGS || 0 }} --user=${{ vars.USER }} --max-followers=${{ vars.MAX_FOLLOWERS || 0 }} --http-timeout=${{ vars.HTTP_TIMEOUT || 0 }}
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -76,6 +76,7 @@ Please see below for a list of configuration options.
|
||||||
| `MAX_FOLLOWINGS` | `--max-followings` | No | Provide to backfill profiles for your most recent followings. Determines how many of your last followings you want to backfill. (An integer number, e.g. `80`. Ensure you also provide `USER`).
|
| `MAX_FOLLOWINGS` | `--max-followings` | No | Provide to backfill profiles for your most recent followings. Determines how many of your last followings you want to backfill. (An integer number, e.g. `80`. Ensure you also provide `USER`).
|
||||||
| `MAX_FOLLOWERS` | `--max-followers` | No | Provide to backfill profiles for your most recent followings. Determines how many of your last followers you want to backfill. (An integer number, e.g. `80`. Ensure you also provide `USER`).
|
| `MAX_FOLLOWERS` | `--max-followers` | No | Provide to backfill profiles for your most recent followings. Determines how many of your last followers you want to backfill. (An integer number, e.g. `80`. Ensure you also provide `USER`).
|
||||||
| `USER` | `--user` | See Notes | Required together with `MAX_FOLLOWERS` or `MAX_FOLLOWINGS`: The username of the user whose followers or followings you want to backfill (e.g. `michael` for the user `@michael@thms.uk`).
|
| `USER` | `--user` | See Notes | Required together with `MAX_FOLLOWERS` or `MAX_FOLLOWINGS`: The username of the user whose followers or followings you want to backfill (e.g. `michael` for the user `@michael@thms.uk`).
|
||||||
|
| `HTTP_TIMEOUT` | `--http-timeout` | No | The timeout for any HTTP requests to the Mastodon API in seconds. Defaults to `5`.
|
||||||
|
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ parser.add_argument('--home-timeline-length', required = False, type=int, defaul
|
||||||
parser.add_argument('--user', required = False, default='', help="Use together with --max-followings or --max-followers to tell us which user's followings/followers we should backfill")
|
parser.add_argument('--user', required = False, default='', help="Use together with --max-followings or --max-followers to tell us which user's followings/followers we should backfill")
|
||||||
parser.add_argument('--max-followings', required = False, type=int, default=0, help="Backfill posts for new accounts followed by --user. We'll backfill at most this many followings' posts")
|
parser.add_argument('--max-followings', required = False, type=int, default=0, help="Backfill posts for new accounts followed by --user. We'll backfill at most this many followings' posts")
|
||||||
parser.add_argument('--max-followers', required = False, type=int, default=0, help="Backfill posts for new accounts following --user. We'll backfill at most this many followers' posts")
|
parser.add_argument('--max-followers', required = False, type=int, default=0, help="Backfill posts for new accounts following --user. We'll backfill at most this many followers' posts")
|
||||||
|
parser.add_argument('--http-timeout', required = False, type=int, default=5, help="The timeout for any HTTP requests to your own, or other instances.")
|
||||||
|
|
||||||
def pull_context(
|
def pull_context(
|
||||||
server,
|
server,
|
||||||
|
@ -587,12 +588,15 @@ def add_context_url(url, server, access_token):
|
||||||
)
|
)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get(url, headers = {}, timeout = 5, max_tries = 5):
|
def get(url, headers = {}, timeout = 0, max_tries = 5):
|
||||||
"""A simple wrapper to make a get request while providing our user agent, and respecting rate limits"""
|
"""A simple wrapper to make a get request while providing our user agent, and respecting rate limits"""
|
||||||
h = headers.copy()
|
h = headers.copy()
|
||||||
if 'User-Agent' not in h:
|
if 'User-Agent' not in h:
|
||||||
h['User-Agent'] = 'mastodon_get_replies (https://go.thms.uk/mgr)'
|
h['User-Agent'] = 'mastodon_get_replies (https://go.thms.uk/mgr)'
|
||||||
|
|
||||||
|
if timeout == 0:
|
||||||
|
timeout = arguments.http_timeout
|
||||||
|
|
||||||
response = requests.get( url, headers= h, timeout=timeout)
|
response = requests.get( url, headers= h, timeout=timeout)
|
||||||
if response.status_code == 429:
|
if response.status_code == 429:
|
||||||
if max_tries > 0:
|
if max_tries > 0:
|
||||||
|
|
Loading…
Reference in a new issue