Repo for Random From Follows and Random - Only Posts.
1from atproto import Client, models
2import config
3
4feed_config = config.FEEDS['random_onlyposts']
5
6def main():
7 client = Client()
8 client.login(config.HANDLE, config.PASSWORD)
9
10 feed_did = f'did:web:{config.HOSTNAME}'
11
12 avatar_blob = None
13 avatar_path = feed_config.get('avatar_path', None)
14 if avatar_path is not None and avatar_path != '':
15 with open(avatar_path, 'rb') as file:
16 avatar_data = file.read()
17 avatar_blob = client.com.atproto.repo.upload_blob(avatar_data).blob
18
19 # response = client.com.atproto.repo.delete_record(models.ComAtprotoRepoDeleteRecord.Data(
20 # repo=client.me.did,
21 # collection=models.ids.AppBskyFeedGenerator,
22 # rkey='favorites',
23 # ))
24 response = client.com.atproto.repo.put_record(models.ComAtprotoRepoPutRecord.Data(
25 repo=client.me.did,
26 collection=models.ids.AppBskyFeedGenerator,
27 rkey=feed_config['record_name'],
28 record=models.AppBskyFeedGenerator.Record(
29 did=feed_did,
30 display_name=feed_config['display_name'],
31 description=feed_config['description'],
32 avatar=avatar_blob,
33 created_at=client.get_current_time_iso(),
34 )
35 ))
36
37 print('Successfully published!')
38 # print('Feed URI:', response.uri)
39
40if __name__ == '__main__':
41 main()