From ad8f0b27002e48e670fb8a3213121a9c4e02ed8c Mon Sep 17 00:00:00 2001 From: the-superpirate Date: Sat, 1 May 2021 12:10:45 +0300 Subject: [PATCH] - feat(nexus): Change user_id to str type due to needs of e... 1 internal commit(s) GitOrigin-RevId: 8bba552568b30f42662051baa2cb2fb088361b96 --- README.md | 4 +- apps/README.md | 21 +++--- nexus/bot/handlers/base.py | 4 +- nexus/bot/handlers/roll.py | 2 +- nexus/bot/handlers/search.py | 8 +-- nexus/bot/user_manager/user_manager.py | 4 +- nexus/bot/widgets/search_widget.py | 2 +- nexus/hub/services/submitter.py | 2 +- nexus/meta_api/aioclient/aioclient.py | 24 +++---- nexus/meta_api/js/client/index.js | 7 +- nexus/meta_api/proto/documents_service.proto | 6 -- nexus/meta_api/proto/documents_service_pb2.py | 66 ++++--------------- .../proto/documents_service_pb2_grpc.py | 0 nexus/meta_api/proto/search_service.proto | 2 - nexus/meta_api/proto/search_service_pb2.py | 24 ++----- nexus/meta_api/services/documents.py | 10 +-- nexus/meta_api/services/search.py | 15 +++-- nexus/views/js/utils.js | 4 +- papers-please/{06-armory.md => 05-armory.md} | 2 +- papers-please/05-dream.md | 0 20 files changed, 73 insertions(+), 134 deletions(-) mode change 100755 => 100644 nexus/meta_api/proto/documents_service_pb2.py mode change 100755 => 100644 nexus/meta_api/proto/documents_service_pb2_grpc.py rename papers-please/{06-armory.md => 05-armory.md} (91%) delete mode 100644 papers-please/05-dream.md diff --git a/README.md b/README.md index 29100ed..18054ec 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ ## Introduction -Hyperboria is a monorepository of tools aimed to enhance availability of science. +Hyperboria is a monorepository of tools aimed to enhance an availability of the science. -Here you find applications for accessing and searching in the biggest libraries of the Earth and other supportive tools. +Here you find Docker and desktop application for accessing and searching in the biggest libraries of the Earth. All sources are under [The Unlicense](https://unlicense.org). They are literally yours. diff --git a/apps/README.md b/apps/README.md index 02f8fc1..24f3e9b 100644 --- a/apps/README.md +++ b/apps/README.md @@ -1,15 +1,16 @@ -# Packages - -All packages requires data dumps. Older base dumps can be found in the end of this page. - ## Packages -- [`Telegram Bot`](nexus-bot) -- [`Headless Search Server`](nexus-cognitron) -- [`Web Application`](nexus-cognitron-web) +### Desktop Applications + +To Be Done + +### Docker-compose sets +- [`Nexus Telegram Bot `](nexus-bot) +- [`Nexus Cognitron (headless)`](nexus-cognitron) +- [`Nexus Cognitron Web`](nexus-cognitron-web) ## Data Dumps -| Date | IPFS Hash | -| --- | ----------- | -| 2021-03-01 | `bafykbzacebzohi352bddfunaub5rgqv5b324nejk5v6fltjh45be5ykw5jsjg` | \ No newline at end of file +| Date | Database | IPFS Hash | +| ---- | -------- | --------- | +| 2021-03-01 | SciTech | `bafykbzacebzohi352bddfunaub5rgqv5b324nejk5v6fltjh45be5ykw5jsjg` | \ No newline at end of file diff --git a/nexus/bot/handlers/base.py b/nexus/bot/handlers/base.py index d74a4ad..f7e8a76 100644 --- a/nexus/bot/handlers/base.py +++ b/nexus/bot/handlers/base.py @@ -97,7 +97,7 @@ class BaseHandler(ABC): session_id=session_id, position=position, request_id=request_context.request_id, - user_id=request_context.chat.chat_id, + user_id=str(request_context.chat.chat_id), ) async def resolve_scimag( @@ -136,7 +136,7 @@ class BaseHandler(ABC): page_size=16, request_id=request_context.request_id, session_id=session_id, - user_id=request_context.chat.chat_id, + user_id=str(request_context.chat.chat_id), ) duplicates = [ scored_document.typed_document.scitech diff --git a/nexus/bot/handlers/roll.py b/nexus/bot/handlers/roll.py index 0d4d541..e06fad0 100644 --- a/nexus/bot/handlers/roll.py +++ b/nexus/bot/handlers/roll.py @@ -20,7 +20,7 @@ class RollHandler(BaseHandler): language=request_context.chat.language, session_id=session_id, request_id=request_context.request_id, - user_id=request_context.chat.chat_id, + user_id=str(request_context.chat.chat_id), ) scitech_view = await self.resolve_scitech( document_id=roll_response_pb.document_id, diff --git a/nexus/bot/handlers/search.py b/nexus/bot/handlers/search.py index d362326..2899944 100644 --- a/nexus/bot/handlers/search.py +++ b/nexus/bot/handlers/search.py @@ -146,11 +146,11 @@ class SearchHandler(BaseSearchHandler): should_reset_last_widget = False is_subscription_required_for_handler = True - def check_search_ban_timeout(self, chat_id: int): - ban_timeout = self.application.user_manager.check_search_ban_timeout(user_id=chat_id) + def check_search_ban_timeout(self, user_id: str): + ban_timeout = self.application.user_manager.check_search_ban_timeout(user_id=user_id) if ban_timeout: raise BannedUserError(ban_timeout=ban_timeout) - self.application.user_manager.add_search_time(user_id=chat_id, search_time=time.time()) + self.application.user_manager.add_search_time(user_id=user_id, search_time=time.time()) def parse_pattern(self, event: events.ChatAction): search_prefix = event.pattern_match.group(1) @@ -161,7 +161,7 @@ class SearchHandler(BaseSearchHandler): async def handler(self, event: events.ChatAction, request_context: RequestContext): try: - self.check_search_ban_timeout(chat_id=request_context.chat.chat_id) + self.check_search_ban_timeout(user_id=str(request_context.chat.chat_id)) except BannedUserError as e: request_context.error_log(e) return await event.reply(t( diff --git a/nexus/bot/user_manager/user_manager.py b/nexus/bot/user_manager/user_manager.py index b089df6..96a2480 100644 --- a/nexus/bot/user_manager/user_manager.py +++ b/nexus/bot/user_manager/user_manager.py @@ -7,7 +7,7 @@ class UserManager: self.search_times = {} self.search_ban_times = {} - def add_search_time(self, user_id: int, search_time: float): + def add_search_time(self, user_id: str, search_time: float): current_time = time.time() search_times = self.search_times.get(user_id, []) search_times.append(search_time) @@ -32,7 +32,7 @@ class UserManager: self.search_times[user_id] = search_times - def check_search_ban_timeout(self, user_id: int): + def check_search_ban_timeout(self, user_id: str): ban_time = self.search_ban_times.get(user_id) if ban_time: timeout = int(ban_time - time.time()) diff --git a/nexus/bot/widgets/search_widget.py b/nexus/bot/widgets/search_widget.py index d522571..9b81257 100644 --- a/nexus/bot/widgets/search_widget.py +++ b/nexus/bot/widgets/search_widget.py @@ -70,7 +70,7 @@ class SearchWidget: page_size=self.application.config['application']['page_size'], request_id=self.request_id, session_id=self.session_id, - user_id=self.chat.chat_id, + user_id=str(self.chat.chat_id), language=self.chat.language, ) diff --git a/nexus/hub/services/submitter.py b/nexus/hub/services/submitter.py index 3756fda..bb34341 100644 --- a/nexus/hub/services/submitter.py +++ b/nexus/hub/services/submitter.py @@ -148,7 +148,7 @@ class SubmitterService(SubmitterServicer, BaseHubService): page_size=1, request_id=request_context.request_id, session_id=session_id, - user_id=request_context.chat.chat_id, + user_id=str(request_context.chat.chat_id), language=request_context.chat.language, ) diff --git a/nexus/meta_api/aioclient/aioclient.py b/nexus/meta_api/aioclient/aioclient.py index 80e6603..a5a421f 100644 --- a/nexus/meta_api/aioclient/aioclient.py +++ b/nexus/meta_api/aioclient/aioclient.py @@ -44,39 +44,39 @@ class MetaApiGrpcClient(BaseGrpcClient): self, schema: str, document_id: int, + user_id: str, position: Optional[int] = None, request_id: Optional[str] = None, session_id: Optional[str] = None, - user_id: Optional[int] = None, ) -> TypedDocumentPb: return await self.stubs['documents'].get( TypedDocumentRequestPb( schema=schema, document_id=document_id, position=position, - session_id=session_id, - user_id=user_id, ), metadata=( ('request-id', request_id), + ('session-id', session_id), + ('user-id', user_id), ), ) async def roll( self, + user_id: str, language: Optional[str] = None, request_id: Optional[str] = None, session_id: Optional[str] = None, - user_id: Optional[int] = None, ) -> RollResponsePb: return await self.stubs['documents'].roll( RollRequestPb( language=language, - session_id=session_id, - user_id=user_id, ), metadata=( ('request-id', request_id), + ('session-id', session_id), + ('user-id', user_id), ), ) @@ -95,12 +95,12 @@ class MetaApiGrpcClient(BaseGrpcClient): self, schemas: Union[List[str], Tuple[str]], query: str, + user_id: str, page: Optional[int] = None, page_size: Optional[int] = None, language: Optional[str] = None, request_id: Optional[str] = None, session_id: Optional[str] = None, - user_id: Optional[int] = None, ) -> SearchResponsePb: return await self.stubs['search'].search( SearchRequestPb( @@ -109,11 +109,11 @@ class MetaApiGrpcClient(BaseGrpcClient): page=page, page_size=page_size, language=language, - session_id=session_id, - user_id=user_id, ), metadata=( ('request-id', request_id), + ('session-id', session_id), + ('user-id', user_id), ), ) @@ -121,18 +121,18 @@ class MetaApiGrpcClient(BaseGrpcClient): self, page: int, page_size: int, + user_id: str, request_id: Optional[str] = None, session_id: Optional[str] = None, - user_id: Optional[int] = None, ) -> TopMissedResponsePb: return await self.stubs['documents'].top_missed( TopMissedRequestPb( page=page, page_size=page_size, - session_id=session_id, - user_id=user_id, ), metadata=( ('request-id', request_id), + ('session-id', session_id), + ('user-id', user_id), ), ) diff --git a/nexus/meta_api/js/client/index.js b/nexus/meta_api/js/client/index.js index c970436..039e8db 100644 --- a/nexus/meta_api/js/client/index.js +++ b/nexus/meta_api/js/client/index.js @@ -22,14 +22,16 @@ export default class MetaApi { } prepareMetadata () { - return Object.assign({ 'request-id': this.generateId(12) }, this.metadata) + return Object.assign({ + 'request-id': this.generateId(12), + 'session-id': this.generateId(8) + }, this.metadata) } async get (schema, documentId) { const request = new documentsProto.TypedDocumentRequest() request.setSchema(schema) request.setDocumentId(documentId) - request.setSessionId(this.generateId(8)) const response = await this.documentsClient.get(request, this.prepareMetadata()) return response.toObject() } @@ -40,7 +42,6 @@ export default class MetaApi { request.setPageSize(pageSize) schemas.forEach((schema) => request.addSchemas(schema)) request.setQuery(query) - request.setSessionId(this.generateId(8)) const response = await this.searchClient.search(request, this.prepareMetadata()) return response.toObject() } diff --git a/nexus/meta_api/proto/documents_service.proto b/nexus/meta_api/proto/documents_service.proto index 526cc41..8c98b93 100644 --- a/nexus/meta_api/proto/documents_service.proto +++ b/nexus/meta_api/proto/documents_service.proto @@ -5,8 +5,6 @@ import "nexus/models/proto/typed_document.proto"; message RollRequest { string language = 1; - string session_id = 2; - int64 user_id = 3; } message RollResponse { @@ -16,8 +14,6 @@ message RollResponse { message TopMissedRequest { uint32 page = 1; uint32 page_size = 2; - string session_id = 3; - int64 user_id = 4; } message TopMissedResponse { @@ -29,8 +25,6 @@ message TypedDocumentRequest { string schema = 1; uint64 document_id = 2; uint32 position = 3; - string session_id = 4; - int64 user_id = 5; } service Documents { diff --git a/nexus/meta_api/proto/documents_service_pb2.py b/nexus/meta_api/proto/documents_service_pb2.py old mode 100755 new mode 100644 index 303f6c3..4783cb9 --- a/nexus/meta_api/proto/documents_service_pb2.py +++ b/nexus/meta_api/proto/documents_service_pb2.py @@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n,nexus/meta_api/proto/documents_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"D\n\x0bRollRequest\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nsession_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\x03\"#\n\x0cRollResponse\x12\x13\n\x0b\x64ocument_id\x18\x01 \x01(\x04\"X\n\x10TopMissedRequest\x12\x0c\n\x04page\x18\x01 \x01(\r\x12\x11\n\tpage_size\x18\x02 \x01(\r\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12\x0f\n\x07user_id\x18\x04 \x01(\x03\"a\n\x11TopMissedResponse\x12:\n\x0ftyped_documents\x18\x01 \x03(\x0b\x32!.nexus.models.proto.TypedDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"r\n\x14TypedDocumentRequest\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x13\n\x0b\x64ocument_id\x18\x02 \x01(\x04\x12\x10\n\x08position\x18\x03 \x01(\r\x12\x12\n\nsession_id\x18\x04 \x01(\t\x12\x0f\n\x07user_id\x18\x05 \x01(\x03\x32\x95\x02\n\tDocuments\x12V\n\x03get\x12*.nexus.meta_api.proto.TypedDocumentRequest\x1a!.nexus.models.proto.TypedDocument\"\x00\x12O\n\x04roll\x12!.nexus.meta_api.proto.RollRequest\x1a\".nexus.meta_api.proto.RollResponse\"\x00\x12_\n\ntop_missed\x12&.nexus.meta_api.proto.TopMissedRequest\x1a\'.nexus.meta_api.proto.TopMissedResponse\"\x00\x62\x06proto3' + serialized_pb=b'\n,nexus/meta_api/proto/documents_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"\x1f\n\x0bRollRequest\x12\x10\n\x08language\x18\x01 \x01(\t\"#\n\x0cRollResponse\x12\x13\n\x0b\x64ocument_id\x18\x01 \x01(\x04\"3\n\x10TopMissedRequest\x12\x0c\n\x04page\x18\x01 \x01(\r\x12\x11\n\tpage_size\x18\x02 \x01(\r\"a\n\x11TopMissedResponse\x12:\n\x0ftyped_documents\x18\x01 \x03(\x0b\x32!.nexus.models.proto.TypedDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"M\n\x14TypedDocumentRequest\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x13\n\x0b\x64ocument_id\x18\x02 \x01(\x04\x12\x10\n\x08position\x18\x03 \x01(\r2\x95\x02\n\tDocuments\x12V\n\x03get\x12*.nexus.meta_api.proto.TypedDocumentRequest\x1a!.nexus.models.proto.TypedDocument\"\x00\x12O\n\x04roll\x12!.nexus.meta_api.proto.RollRequest\x1a\".nexus.meta_api.proto.RollResponse\"\x00\x12_\n\ntop_missed\x12&.nexus.meta_api.proto.TopMissedRequest\x1a\'.nexus.meta_api.proto.TopMissedResponse\"\x00\x62\x06proto3' , dependencies=[nexus_dot_models_dot_proto_dot_typed__document__pb2.DESCRIPTOR,]) @@ -43,20 +43,6 @@ _ROLLREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='nexus.meta_api.proto.RollRequest.session_id', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='user_id', full_name='nexus.meta_api.proto.RollRequest.user_id', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -70,7 +56,7 @@ _ROLLREQUEST = _descriptor.Descriptor( oneofs=[ ], serialized_start=111, - serialized_end=179, + serialized_end=142, ) @@ -101,8 +87,8 @@ _ROLLRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=181, - serialized_end=216, + serialized_start=144, + serialized_end=179, ) @@ -128,20 +114,6 @@ _TOPMISSEDREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='nexus.meta_api.proto.TopMissedRequest.session_id', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='user_id', full_name='nexus.meta_api.proto.TopMissedRequest.user_id', index=3, - number=4, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -154,8 +126,8 @@ _TOPMISSEDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=218, - serialized_end=306, + serialized_start=181, + serialized_end=232, ) @@ -193,8 +165,8 @@ _TOPMISSEDRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=308, - serialized_end=405, + serialized_start=234, + serialized_end=331, ) @@ -227,20 +199,6 @@ _TYPEDDOCUMENTREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='nexus.meta_api.proto.TypedDocumentRequest.session_id', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='user_id', full_name='nexus.meta_api.proto.TypedDocumentRequest.user_id', index=4, - number=5, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -253,8 +211,8 @@ _TYPEDDOCUMENTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=407, - serialized_end=521, + serialized_start=333, + serialized_end=410, ) _TOPMISSEDRESPONSE.fields_by_name['typed_documents'].message_type = nexus_dot_models_dot_proto_dot_typed__document__pb2._TYPEDDOCUMENT @@ -309,8 +267,8 @@ _DOCUMENTS = _descriptor.ServiceDescriptor( index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=524, - serialized_end=801, + serialized_start=413, + serialized_end=690, methods=[ _descriptor.MethodDescriptor( name='get', diff --git a/nexus/meta_api/proto/documents_service_pb2_grpc.py b/nexus/meta_api/proto/documents_service_pb2_grpc.py old mode 100755 new mode 100644 diff --git a/nexus/meta_api/proto/search_service.proto b/nexus/meta_api/proto/search_service.proto index 0c61e4f..cfd8282 100644 --- a/nexus/meta_api/proto/search_service.proto +++ b/nexus/meta_api/proto/search_service.proto @@ -20,8 +20,6 @@ message SearchRequest { uint32 page = 3; uint32 page_size = 4; string language = 5; - int64 user_id = 6; - string session_id = 7; } service Search { diff --git a/nexus/meta_api/proto/search_service_pb2.py b/nexus/meta_api/proto/search_service_pb2.py index 3738617..162fed2 100644 --- a/nexus/meta_api/proto/search_service_pb2.py +++ b/nexus/meta_api/proto/search_service_pb2.py @@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor( syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n)nexus/meta_api/proto/search_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"l\n\x0eScoredDocument\x12\x39\n\x0etyped_document\x18\x01 \x01(\x0b\x32!.nexus.models.proto.TypedDocument\x12\r\n\x05score\x18\x02 \x01(\x02\x12\x10\n\x08position\x18\x03 \x01(\r\"b\n\x0eSearchResponse\x12>\n\x10scored_documents\x18\x01 \x03(\x0b\x32$.nexus.meta_api.proto.ScoredDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"\x87\x01\n\rSearchRequest\x12\x0f\n\x07schemas\x18\x01 \x03(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0c\n\x04page\x18\x03 \x01(\r\x12\x11\n\tpage_size\x18\x04 \x01(\r\x12\x10\n\x08language\x18\x05 \x01(\t\x12\x0f\n\x07user_id\x18\x06 \x01(\x03\x12\x12\n\nsession_id\x18\x07 \x01(\t2_\n\x06Search\x12U\n\x06search\x12#.nexus.meta_api.proto.SearchRequest\x1a$.nexus.meta_api.proto.SearchResponse\"\x00\x62\x06proto3' + serialized_pb=b'\n)nexus/meta_api/proto/search_service.proto\x12\x14nexus.meta_api.proto\x1a\'nexus/models/proto/typed_document.proto\"l\n\x0eScoredDocument\x12\x39\n\x0etyped_document\x18\x01 \x01(\x0b\x32!.nexus.models.proto.TypedDocument\x12\r\n\x05score\x18\x02 \x01(\x02\x12\x10\n\x08position\x18\x03 \x01(\r\"b\n\x0eSearchResponse\x12>\n\x10scored_documents\x18\x01 \x03(\x0b\x32$.nexus.meta_api.proto.ScoredDocument\x12\x10\n\x08has_next\x18\x02 \x01(\x08\"b\n\rSearchRequest\x12\x0f\n\x07schemas\x18\x01 \x03(\t\x12\r\n\x05query\x18\x02 \x01(\t\x12\x0c\n\x04page\x18\x03 \x01(\r\x12\x11\n\tpage_size\x18\x04 \x01(\r\x12\x10\n\x08language\x18\x05 \x01(\t2_\n\x06Search\x12U\n\x06search\x12#.nexus.meta_api.proto.SearchRequest\x1a$.nexus.meta_api.proto.SearchResponse\"\x00\x62\x06proto3' , dependencies=[nexus_dot_models_dot_proto_dot_typed__document__pb2.DESCRIPTOR,]) @@ -156,20 +156,6 @@ _SEARCHREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='user_id', full_name='nexus.meta_api.proto.SearchRequest.user_id', index=5, - number=6, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='session_id', full_name='nexus.meta_api.proto.SearchRequest.session_id', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -182,8 +168,8 @@ _SEARCHREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=319, - serialized_end=454, + serialized_start=318, + serialized_end=416, ) _SCOREDDOCUMENT.fields_by_name['typed_document'].message_type = nexus_dot_models_dot_proto_dot_typed__document__pb2._TYPEDDOCUMENT @@ -223,8 +209,8 @@ _SEARCH = _descriptor.ServiceDescriptor( index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=456, - serialized_end=551, + serialized_start=418, + serialized_end=513, methods=[ _descriptor.MethodDescriptor( name='search', diff --git a/nexus/meta_api/services/documents.py b/nexus/meta_api/services/documents.py index b732a37..ff0885c 100644 --- a/nexus/meta_api/services/documents.py +++ b/nexus/meta_api/services/documents.py @@ -69,7 +69,7 @@ class DocumentsService(DocumentsServicer, BaseService): if self.learn_logger: self.learn_logger.info({ 'action': 'get', - 'session_id': request.session_id, + 'session_id': metadata['session-id'], 'unixtime': time.time(), 'schema': request.schema, 'document_id': document['id'], @@ -83,8 +83,8 @@ class DocumentsService(DocumentsServicer, BaseService): 'position': request.position, 'request_id': metadata['request-id'], 'schema': request.schema, - 'session_id': request.session_id, - 'user_id': request.user_id, + 'session_id': metadata['session-id'], + 'user_id': metadata['user-id'], }) document_pb = pb_registry[request.schema](**document) @@ -109,8 +109,8 @@ class DocumentsService(DocumentsServicer, BaseService): 'id': random_id, 'mode': 'roll', 'request_id': metadata['request-id'], - 'session_id': request.session_id, - 'user_id': request.user_id, + 'session_id': metadata['session-id'], + 'user_id': metadata['user-id'], }) return RollResponsePb(document_id=random_id) diff --git a/nexus/meta_api/services/search.py b/nexus/meta_api/services/search.py index 90404d1..6f9c25c 100644 --- a/nexus/meta_api/services/search.py +++ b/nexus/meta_api/services/search.py @@ -104,10 +104,11 @@ class Searcher(BaseService): cache_hit = True page_size = request.page_size or 5 schemas = tuple(sorted([schema for schema in request.schemas])) + user_id = metadata['user-id'] if ( - (request.user_id, request.language, schemas, request.query) not in self.query_cache - or len(self.query_cache[(request.user_id, request.language, schemas, request.query)].scored_documents) == 0 + (user_id, request.language, schemas, request.query) not in self.query_cache + or len(self.query_cache[(user_id, request.language, schemas, request.query)].scored_documents) == 0 ): cache_hit = False query = despace_full(request.query) @@ -145,12 +146,12 @@ class Searcher(BaseService): rescored_documents = await self.rescorer.rescore( scored_documents=search_response['scored_documents'], query=query, - session_id=request.session_id, + session_id=metadata['session-id'], language=request.language, ) search_response['scored_documents'] = rescored_documents search_response_pb = self.cast_search_response(search_response) - self.query_cache[(request.user_id, request.language, schemas, request.query)] = search_response_pb + self.query_cache[(user_id, request.language, schemas, request.query)] = search_response_pb logging.getLogger('query').info({ 'action': 'request', @@ -164,11 +165,11 @@ class Searcher(BaseService): 'query_class': processor_response['class'].value if processor_response else None, 'request_id': metadata['request-id'], 'schemas': schemas, - 'session_id': request.session_id, - 'user_id': request.user_id, + 'session_id': metadata['session-id'], + 'user_id': user_id, }) - scored_documents = self.query_cache[(request.user_id, request.language, schemas, request.query)].scored_documents + scored_documents = self.query_cache[(user_id, request.language, schemas, request.query)].scored_documents left_offset = request.page * page_size right_offset = left_offset + page_size has_next = len(scored_documents) > right_offset diff --git a/nexus/views/js/utils.js b/nexus/views/js/utils.js index 25b7f2c..59172ec 100644 --- a/nexus/views/js/utils.js +++ b/nexus/views/js/utils.js @@ -1,8 +1,8 @@ -const ALNUMWHITESPACE_REGEX = /([^\s\w])/gu +const NON_ALNUMWHITESPACE_REGEX = /([^\s\p{L}\p{Nd}])/gu const MULTIWHITESPACE_REGEX = /\s+/g export function castStringToSingleString (s) { - let processed = s.replace(ALNUMWHITESPACE_REGEX, ' ') + let processed = s.replace(NON_ALNUMWHITESPACE_REGEX, ' ') processed = processed.replace(MULTIWHITESPACE_REGEX, '-') return processed } diff --git a/papers-please/06-armory.md b/papers-please/05-armory.md similarity index 91% rename from papers-please/06-armory.md rename to papers-please/05-armory.md index e407d10..5082ca7 100644 --- a/papers-please/06-armory.md +++ b/papers-please/05-armory.md @@ -7,4 +7,4 @@ There is a plenty of projects that are in need of your time or donation support - [IPFS](https://ipfs.io) - user-friendly replacement for torrent technology allowing you to exchange files without possibility for copyretards to ban exchange - [TOR](https://www.torproject.org) / [I2P](https://geti2p.net) - tools for improving your anonymity in the Internet by hiding your IPs and other traits that could deanonymize you - [Yggdrasil](https://yggdrasil-network.github.io) / [Cjdns](https://github.com/cjdelisle/cjdns) - tools for allowing you to route your Internet packages without relying on centralized state-controlled equipment. It could be useful to encounter Internet connectivity disruptions arranged by governments. It also allowes you to create mesh networks with your neighbors for keeping high connectivity. It would be useful in densely populated areas or even during peaceful demonstrations. -- Our own [Nexus](https://github.com/nexus-stc/hyperboria) that is aimed to store important data and make them searchable. +- [Nexus STC](https://github.com/nexus-stc/hyperboria) that is aimed to store important data and make them searchable. diff --git a/papers-please/05-dream.md b/papers-please/05-dream.md deleted file mode 100644 index e69de29..0000000