Remote the object service, use the backend instead
This commit is contained in:
		
							parent
							
								
									524a63235d
								
							
						
					
					
						commit
						01e165640e
					
				
					 3 changed files with 7 additions and 34 deletions
				
			
		
							
								
								
									
										16
									
								
								app.py
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								app.py
									
										
									
									
									
								
							|  | @ -41,7 +41,6 @@ import activitypub | |||
| import config | ||||
| from activitypub import Box | ||||
| from activitypub import embed_collection | ||||
| from config import ACTOR_SERVICE | ||||
| from config import ADMIN_API_KEY | ||||
| from config import BASE_URL | ||||
| from config import DB | ||||
|  | @ -54,7 +53,6 @@ from config import JWT | |||
| from config import KEY | ||||
| from config import ME | ||||
| from config import MEDIA_CACHE | ||||
| from config import OBJECT_SERVICE | ||||
| from config import PASS | ||||
| from config import USERNAME | ||||
| from config import VERSION | ||||
|  | @ -267,7 +265,7 @@ def get_actor(url): | |||
|         return None | ||||
|     print(f"GET_ACTOR {url}") | ||||
|     try: | ||||
|         return ACTOR_SERVICE.get(url) | ||||
|         return get_backend().fetch_iri(url) | ||||
|     except (ActivityNotFoundError, ActivityGoneError): | ||||
|         return f"Deleted<{url}>" | ||||
| 
 | ||||
|  | @ -794,7 +792,7 @@ def note_by_id(note_id): | |||
|             } | ||||
|         ) | ||||
|     ) | ||||
|     likes = [ACTOR_SERVICE.get(doc["activity"]["actor"]) for doc in likes] | ||||
|     likes = [get_backend().fetch_iri(doc["activity"]["actor"]) for doc in likes] | ||||
| 
 | ||||
|     shares = list( | ||||
|         DB.activities.find( | ||||
|  | @ -808,7 +806,7 @@ def note_by_id(note_id): | |||
|             } | ||||
|         ) | ||||
|     ) | ||||
|     shares = [ACTOR_SERVICE.get(doc["activity"]["actor"]) for doc in shares] | ||||
|     shares = [get_backend().fetch_iri(doc["activity"]["actor"]) for doc in shares] | ||||
| 
 | ||||
|     return render_template( | ||||
|         "note.html", likes=likes, shares=shares, thread=thread, note=data | ||||
|  | @ -1248,7 +1246,7 @@ def _user_api_arg(key: str, **kwargs): | |||
| 
 | ||||
| def _user_api_get_note(from_outbox: bool = False): | ||||
|     oid = _user_api_arg("id") | ||||
|     note = ap.parse_activity(OBJECT_SERVICE.get(oid), expected=ActivityType.NOTE) | ||||
|     note = ap.parse_activity(get_backend().fetch_iri(oid), expected=ActivityType.NOTE) | ||||
|     if from_outbox and not note.id.startswith(ID): | ||||
|         raise NotFromOutboxError( | ||||
|             f"cannot load {note.id}, id must be owned by the server" | ||||
|  | @ -1436,7 +1434,7 @@ def api_new_note(): | |||
|     cc = [ID + "/followers"] | ||||
| 
 | ||||
|     if _reply: | ||||
|         reply = ap.parse_activity(OBJECT_SERVICE.get(_reply)) | ||||
|         reply = ap.fetch_remote_activity(_reply) | ||||
|         cc.append(reply.attributedTo) | ||||
| 
 | ||||
|     for tag in tags: | ||||
|  | @ -1547,7 +1545,7 @@ def followers(): | |||
|         ) | ||||
| 
 | ||||
|     followers, older_than, newer_than = paginated_query(DB.activities, q) | ||||
|     followers = [ACTOR_SERVICE.get(doc["activity"]["actor"]) for doc in followers] | ||||
|     followers = [get_backend().fetch_iri(doc["activity"]["actor"]) for doc in followers] | ||||
|     return render_template( | ||||
|         "followers.html", | ||||
|         followers_data=followers, | ||||
|  | @ -1571,7 +1569,7 @@ def following(): | |||
|         ) | ||||
| 
 | ||||
|     following, older_than, newer_than = paginated_query(DB.activities, q) | ||||
|     following = [ACTOR_SERVICE.get(doc["activity"]["object"]) for doc in following] | ||||
|     following = [get_backend.fetch_iri(doc["activity"]["object"]) for doc in following] | ||||
|     return render_template( | ||||
|         "following.html", | ||||
|         following_data=following, | ||||
|  |  | |||
|  | @ -15,7 +15,6 @@ from utils.key import KEY_DIR | |||
| from utils.key import get_key | ||||
| from utils.key import get_secret_key | ||||
| from utils.media import MediaCache | ||||
| from utils.object_service import ObjectService | ||||
| 
 | ||||
| 
 | ||||
| class ThemeStyle(Enum): | ||||
|  | @ -148,6 +147,3 @@ ME = { | |||
|     }, | ||||
|     "publicKey": KEY.to_dict(), | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| OBJECT_SERVICE = ACTOR_SERVICE = ObjectService() | ||||
|  |  | |||
|  | @ -1,21 +0,0 @@ | |||
| import logging | ||||
| 
 | ||||
| from little_boxes.activitypub import get_backend | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| class ObjectService(object): | ||||
|     def __init__(self): | ||||
|         logger.debug("Initializing ObjectService") | ||||
|         self._cache = {} | ||||
| 
 | ||||
|     def get(self, iri, reload_cache=False): | ||||
|         logger.info(f"get actor {iri} (reload_cache={reload_cache})") | ||||
| 
 | ||||
|         if not reload_cache and iri in self._cache: | ||||
|             return self._cache[iri] | ||||
| 
 | ||||
|         obj = get_backend().fetch_iri(iri) | ||||
|         self._cache[iri] = obj | ||||
|         return obj | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue