@juzi/wechaty-puppet-service 1.0.43 → 1.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/client/puppet-service.d.ts +3 -4
- package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
- package/dist/cjs/src/client/puppet-service.js +80 -198
- package/dist/cjs/src/client/puppet-service.js.map +1 -1
- package/dist/cjs/src/package-json.d.ts.map +1 -1
- package/dist/cjs/src/package-json.js +4 -3
- package/dist/cjs/src/package-json.js.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.js +41 -127
- package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
- package/dist/cjs/src/utils/pb-payload-helper.d.ts +5 -2
- package/dist/cjs/src/utils/pb-payload-helper.d.ts.map +1 -1
- package/dist/cjs/src/utils/pb-payload-helper.js +146 -1
- package/dist/cjs/src/utils/pb-payload-helper.js.map +1 -1
- package/dist/esm/src/client/puppet-service.d.ts +3 -4
- package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
- package/dist/esm/src/client/puppet-service.js +78 -196
- package/dist/esm/src/client/puppet-service.js.map +1 -1
- package/dist/esm/src/package-json.d.ts.map +1 -1
- package/dist/esm/src/package-json.js +4 -3
- package/dist/esm/src/package-json.js.map +1 -1
- package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/esm/src/server/puppet-implementation.js +40 -126
- package/dist/esm/src/server/puppet-implementation.js.map +1 -1
- package/dist/esm/src/utils/pb-payload-helper.d.ts +5 -2
- package/dist/esm/src/utils/pb-payload-helper.d.ts.map +1 -1
- package/dist/esm/src/utils/pb-payload-helper.js +120 -0
- package/dist/esm/src/utils/pb-payload-helper.js.map +1 -1
- package/package.json +4 -3
- package/src/client/puppet-service.ts +97 -214
- package/src/package-json.ts +4 -3
- package/src/server/puppet-implementation.ts +50 -144
- package/src/utils/pb-payload-helper.ts +119 -2
- package/dist/cjs/src/deprecated/chunk-pb.d.ts +0 -15
- package/dist/cjs/src/deprecated/chunk-pb.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/chunk-pb.js +0 -60
- package/dist/cjs/src/deprecated/chunk-pb.js.map +0 -1
- package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts +0 -3
- package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/chunk-pb.spec.js +0 -144
- package/dist/cjs/src/deprecated/chunk-pb.spec.js.map +0 -1
- package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts +0 -21
- package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/conversation-id-file-box.js +0 -43
- package/dist/cjs/src/deprecated/conversation-id-file-box.js.map +0 -1
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js +0 -94
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
- package/dist/cjs/src/deprecated/file-box-chunk.d.ts +0 -14
- package/dist/cjs/src/deprecated/file-box-chunk.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/file-box-chunk.js +0 -67
- package/dist/cjs/src/deprecated/file-box-chunk.js.map +0 -1
- package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts +0 -3
- package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/file-box-chunk.spec.js +0 -134
- package/dist/cjs/src/deprecated/file-box-chunk.spec.js.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.d.ts +0 -15
- package/dist/cjs/src/deprecated/file-box-pb.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.js +0 -26
- package/dist/cjs/src/deprecated/file-box-pb.js.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts +0 -3
- package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.spec.js +0 -18
- package/dist/cjs/src/deprecated/file-box-pb.spec.js.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.type.d.ts +0 -15
- package/dist/cjs/src/deprecated/file-box-pb.type.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/file-box-pb.type.js +0 -3
- package/dist/cjs/src/deprecated/file-box-pb.type.js.map +0 -1
- package/dist/cjs/src/deprecated/mod.d.ts +0 -3
- package/dist/cjs/src/deprecated/mod.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/mod.js +0 -10
- package/dist/cjs/src/deprecated/mod.js.map +0 -1
- package/dist/cjs/src/deprecated/next-data.d.ts +0 -7
- package/dist/cjs/src/deprecated/next-data.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/next-data.js +0 -26
- package/dist/cjs/src/deprecated/next-data.js.map +0 -1
- package/dist/cjs/src/deprecated/serialize-file-box.d.ts +0 -6
- package/dist/cjs/src/deprecated/serialize-file-box.d.ts.map +0 -1
- package/dist/cjs/src/deprecated/serialize-file-box.js +0 -22
- package/dist/cjs/src/deprecated/serialize-file-box.js.map +0 -1
- package/dist/esm/src/deprecated/chunk-pb.d.ts +0 -15
- package/dist/esm/src/deprecated/chunk-pb.d.ts.map +0 -1
- package/dist/esm/src/deprecated/chunk-pb.js +0 -56
- package/dist/esm/src/deprecated/chunk-pb.js.map +0 -1
- package/dist/esm/src/deprecated/chunk-pb.spec.d.ts +0 -3
- package/dist/esm/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
- package/dist/esm/src/deprecated/chunk-pb.spec.js +0 -142
- package/dist/esm/src/deprecated/chunk-pb.spec.js.map +0 -1
- package/dist/esm/src/deprecated/conversation-id-file-box.d.ts +0 -21
- package/dist/esm/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
- package/dist/esm/src/deprecated/conversation-id-file-box.js +0 -39
- package/dist/esm/src/deprecated/conversation-id-file-box.js.map +0 -1
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.js +0 -92
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
- package/dist/esm/src/deprecated/file-box-chunk.d.ts +0 -14
- package/dist/esm/src/deprecated/file-box-chunk.d.ts.map +0 -1
- package/dist/esm/src/deprecated/file-box-chunk.js +0 -63
- package/dist/esm/src/deprecated/file-box-chunk.js.map +0 -1
- package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts +0 -3
- package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
- package/dist/esm/src/deprecated/file-box-chunk.spec.js +0 -132
- package/dist/esm/src/deprecated/file-box-chunk.spec.js.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.d.ts +0 -15
- package/dist/esm/src/deprecated/file-box-pb.d.ts.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.js +0 -22
- package/dist/esm/src/deprecated/file-box-pb.js.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.spec.d.ts +0 -3
- package/dist/esm/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.spec.js +0 -16
- package/dist/esm/src/deprecated/file-box-pb.spec.js.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.type.d.ts +0 -15
- package/dist/esm/src/deprecated/file-box-pb.type.d.ts.map +0 -1
- package/dist/esm/src/deprecated/file-box-pb.type.js +0 -2
- package/dist/esm/src/deprecated/file-box-pb.type.js.map +0 -1
- package/dist/esm/src/deprecated/mod.d.ts +0 -3
- package/dist/esm/src/deprecated/mod.d.ts.map +0 -1
- package/dist/esm/src/deprecated/mod.js +0 -3
- package/dist/esm/src/deprecated/mod.js.map +0 -1
- package/dist/esm/src/deprecated/next-data.d.ts +0 -7
- package/dist/esm/src/deprecated/next-data.d.ts.map +0 -1
- package/dist/esm/src/deprecated/next-data.js +0 -23
- package/dist/esm/src/deprecated/next-data.js.map +0 -1
- package/dist/esm/src/deprecated/serialize-file-box.d.ts +0 -6
- package/dist/esm/src/deprecated/serialize-file-box.d.ts.map +0 -1
- package/dist/esm/src/deprecated/serialize-file-box.js +0 -18
- package/dist/esm/src/deprecated/serialize-file-box.js.map +0 -1
- package/src/deprecated/chunk-pb.spec.ts +0 -210
- package/src/deprecated/chunk-pb.ts +0 -75
- package/src/deprecated/conversation-id-file-box.spec.ts +0 -131
- package/src/deprecated/conversation-id-file-box.ts +0 -72
- package/src/deprecated/file-box-chunk.spec.ts +0 -184
- package/src/deprecated/file-box-chunk.ts +0 -87
- package/src/deprecated/file-box-pb.spec.ts +0 -31
- package/src/deprecated/file-box-pb.ts +0 -41
- package/src/deprecated/file-box-pb.type.ts +0 -16
- package/src/deprecated/mod.ts +0 -8
- package/src/deprecated/next-data.ts +0 -35
- package/src/deprecated/serialize-file-box.ts +0 -24
|
@@ -25,11 +25,6 @@ import { Ducks,
|
|
|
25
25
|
// Bundle,
|
|
26
26
|
} from 'ducks';
|
|
27
27
|
// import type { Subscription } from 'rxjs'
|
|
28
|
-
/**
|
|
29
|
-
* Deprecated. Will be removed after Dec 31, 2022
|
|
30
|
-
*/
|
|
31
|
-
import { packConversationIdFileBoxToPb, unpackFileBoxFromPb, } from '../deprecated/mod.js';
|
|
32
|
-
import { serializeFileBox } from '../deprecated/serialize-file-box.js';
|
|
33
28
|
import { millisecondsFromTimestamp } from '../pure-functions/timestamp.js';
|
|
34
29
|
import { uuidifyFileBoxGrpc, normalizeFileBoxUuid, } from '../file-box-helper/mod.js';
|
|
35
30
|
import { envVars, log, NO_LOG_EVENTS, VERSION, } from '../config.js';
|
|
@@ -37,7 +32,7 @@ import { EventTypeRev, } from '../event-type-rev.js';
|
|
|
37
32
|
import { packageJson } from '../package-json.js';
|
|
38
33
|
import { GrpcManager } from './grpc-manager.js';
|
|
39
34
|
import { PayloadStore } from './payload-store.js';
|
|
40
|
-
import { channelPayloadToPb, channelPbToPayload,
|
|
35
|
+
import { channelPayloadToPb, channelPbToPayload, postPayloadToPb, urlLinkPbToPayload } from '../utils/pb-payload-helper.js';
|
|
41
36
|
class PuppetService extends PUPPET.Puppet {
|
|
42
37
|
options;
|
|
43
38
|
static VERSION = VERSION;
|
|
@@ -441,12 +436,6 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
441
436
|
request.setId(contactId);
|
|
442
437
|
const serializedFileBox = await this.serializeFileBox(fileBox);
|
|
443
438
|
request.setFileBox(serializedFileBox);
|
|
444
|
-
{
|
|
445
|
-
// DEPRECATED, will be removed after Dec 31, 2022
|
|
446
|
-
const fileboxWrapper = new StringValue();
|
|
447
|
-
fileboxWrapper.setValue(await serializeFileBox(fileBox));
|
|
448
|
-
request.setFileboxStringValueDeprecated(fileboxWrapper);
|
|
449
|
-
}
|
|
450
439
|
await util.promisify(this.grpcManager.client.contactAvatar
|
|
451
440
|
.bind(this.grpcManager.client))(request);
|
|
452
441
|
return;
|
|
@@ -532,58 +521,58 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
532
521
|
if (payload.id) {
|
|
533
522
|
throw new Error('cannot modify contactId');
|
|
534
523
|
}
|
|
535
|
-
if (payload.gender) {
|
|
524
|
+
if (typeof payload.gender !== 'undefined') {
|
|
536
525
|
request.setGender(payload.gender);
|
|
537
526
|
}
|
|
538
|
-
if (payload.type) {
|
|
527
|
+
if (typeof payload.type !== 'undefined') {
|
|
539
528
|
request.setType(payload.type);
|
|
540
529
|
}
|
|
541
|
-
if (payload.name) {
|
|
530
|
+
if (typeof payload.name !== 'undefined') {
|
|
542
531
|
request.setName(payload.name);
|
|
543
532
|
}
|
|
544
|
-
if (payload.avatar) {
|
|
533
|
+
if (typeof payload.avatar !== 'undefined') {
|
|
545
534
|
request.setAvatar(payload.avatar);
|
|
546
535
|
}
|
|
547
|
-
if (payload.address) {
|
|
536
|
+
if (typeof payload.address !== 'undefined') {
|
|
548
537
|
request.setAddress(payload.address);
|
|
549
538
|
}
|
|
550
|
-
if (payload.alias) {
|
|
539
|
+
if (typeof payload.alias !== 'undefined') {
|
|
551
540
|
request.setAlias(payload.alias);
|
|
552
541
|
}
|
|
553
|
-
if (payload.city) {
|
|
542
|
+
if (typeof payload.city !== 'undefined') {
|
|
554
543
|
request.setCity(payload.city);
|
|
555
544
|
}
|
|
556
|
-
if (payload.friend) {
|
|
545
|
+
if (typeof payload.friend !== 'undefined') {
|
|
557
546
|
request.setFriend(payload.friend);
|
|
558
547
|
}
|
|
559
|
-
if (payload.province) {
|
|
548
|
+
if (typeof payload.province !== 'undefined') {
|
|
560
549
|
request.setProvince(payload.province);
|
|
561
550
|
}
|
|
562
|
-
if (payload.star) {
|
|
551
|
+
if (typeof payload.star !== 'undefined') {
|
|
563
552
|
request.setStar(payload.star);
|
|
564
553
|
}
|
|
565
|
-
if (payload.weixin) {
|
|
554
|
+
if (typeof payload.weixin !== 'undefined') {
|
|
566
555
|
request.setWeixin(payload.weixin);
|
|
567
556
|
}
|
|
568
|
-
if (payload.corporation) {
|
|
557
|
+
if (typeof payload.corporation !== 'undefined') {
|
|
569
558
|
request.setCorporation(payload.corporation);
|
|
570
559
|
}
|
|
571
|
-
if (payload.title) {
|
|
560
|
+
if (typeof payload.title !== 'undefined') {
|
|
572
561
|
request.setTitle(payload.title);
|
|
573
562
|
}
|
|
574
|
-
if (payload.description) {
|
|
563
|
+
if (typeof payload.description !== 'undefined') {
|
|
575
564
|
request.setDescription(payload.description);
|
|
576
565
|
}
|
|
577
|
-
if (payload.coworker) {
|
|
566
|
+
if (typeof payload.coworker !== 'undefined') {
|
|
578
567
|
request.setCoworker(payload.coworker);
|
|
579
568
|
}
|
|
580
|
-
if (payload.phone) {
|
|
569
|
+
if (typeof payload.phone !== 'undefined') {
|
|
581
570
|
request.setPhonesList(payload.phone);
|
|
582
571
|
}
|
|
583
|
-
if (payload.additionalInfo) {
|
|
572
|
+
if (typeof payload.additionalInfo !== 'undefined') {
|
|
584
573
|
request.setAdditionalInfo(payload.additionalInfo);
|
|
585
574
|
}
|
|
586
|
-
if (payload.tags) {
|
|
575
|
+
if (typeof payload.tags !== 'undefined') {
|
|
587
576
|
request.setTagIdsList(payload.tags);
|
|
588
577
|
}
|
|
589
578
|
await util.promisify(this.grpcManager.client.contactPayloadModify
|
|
@@ -671,31 +660,16 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
671
660
|
}
|
|
672
661
|
async messageImage(messageId, imageType) {
|
|
673
662
|
log.verbose('PuppetService', 'messageImage(%s, %s[%s])', messageId, imageType, PUPPET.types.Image[imageType]);
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
return this.FileBoxUuid.fromJSON(jsonText);
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
catch (e) {
|
|
686
|
-
log.verbose('PuppetService', 'messageImage() rejection %s', e.message);
|
|
687
|
-
}
|
|
688
|
-
{
|
|
689
|
-
// Deprecated. Will be removed after Dec 31, 2022
|
|
690
|
-
const request = new grpcPuppet.MessageImageStreamRequest();
|
|
691
|
-
request.setId(messageId);
|
|
692
|
-
request.setType(imageType);
|
|
693
|
-
const pbStream = this.grpcManager.client.messageImageStream(request);
|
|
694
|
-
const fileBox = await unpackFileBoxFromPb(pbStream);
|
|
695
|
-
// const fileBoxChunkStream = unpackFileBoxChunk(stream)
|
|
696
|
-
// return unpackFileBox(fileBoxChunkStream)
|
|
697
|
-
return fileBox;
|
|
663
|
+
const request = new grpcPuppet.MessageImageRequest();
|
|
664
|
+
request.setId(messageId);
|
|
665
|
+
request.setType(imageType);
|
|
666
|
+
const response = await util.promisify(this.grpcManager.client.messageImage
|
|
667
|
+
.bind(this.grpcManager.client))(request);
|
|
668
|
+
const jsonText = response.getFileBox();
|
|
669
|
+
if (jsonText) {
|
|
670
|
+
return this.FileBoxUuid.fromJSON(jsonText);
|
|
698
671
|
}
|
|
672
|
+
throw new Error(`failed to get image filebox for message ${messageId}`);
|
|
699
673
|
}
|
|
700
674
|
async messageContact(messageId) {
|
|
701
675
|
log.verbose('PuppetService', 'messageContact(%s)', messageId);
|
|
@@ -815,36 +789,15 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
815
789
|
}
|
|
816
790
|
async messageFile(id) {
|
|
817
791
|
log.verbose('PuppetService', 'messageFile(%s)', id);
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
return this.FileBoxUuid.fromJSON(jsonText);
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
catch (e) {
|
|
829
|
-
log.warn('PuppetService', 'messageFile() rejection: %s', e.message);
|
|
830
|
-
log.warn('PuppetService', [
|
|
831
|
-
'This might because you are using Wechaty v1.x with a Puppet Service v0.x',
|
|
832
|
-
'Contact your Wechaty Puppet Service provided to report this problem',
|
|
833
|
-
'Related issues:',
|
|
834
|
-
' - https://github.com/wechaty/puppet-service/issues/179',
|
|
835
|
-
' - https://github.com/wechaty/puppet-service/pull/170',
|
|
836
|
-
].join('\n'));
|
|
837
|
-
}
|
|
838
|
-
{
|
|
839
|
-
// Deprecated. `MessageFileStream` Will be removed after Dec 31, 2022
|
|
840
|
-
const request = new grpcPuppet.MessageFileStreamRequest();
|
|
841
|
-
request.setId(id);
|
|
842
|
-
const pbStream = this.grpcManager.client.messageFileStream(request);
|
|
843
|
-
// const fileBoxChunkStream = unpackFileBoxChunk(pbStream)
|
|
844
|
-
// return unpackFileBox(fileBoxChunkStream)
|
|
845
|
-
const fileBox = await unpackFileBoxFromPb(pbStream);
|
|
846
|
-
return fileBox;
|
|
792
|
+
const request = new grpcPuppet.MessageFileRequest();
|
|
793
|
+
request.setId(id);
|
|
794
|
+
const response = await util.promisify(this.grpcManager.client.messageFile
|
|
795
|
+
.bind(this.grpcManager.client))(request);
|
|
796
|
+
const jsonText = response.getFileBox();
|
|
797
|
+
if (jsonText) {
|
|
798
|
+
return this.FileBoxUuid.fromJSON(jsonText);
|
|
847
799
|
}
|
|
800
|
+
throw new Error(`failed to get filebox for message ${id}`);
|
|
848
801
|
}
|
|
849
802
|
async messagePreview(id) {
|
|
850
803
|
log.verbose('PuppetService', 'messagePreview(%s)', id);
|
|
@@ -963,40 +916,27 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
963
916
|
}
|
|
964
917
|
async messageSendFile(conversationId, fileBox) {
|
|
965
918
|
log.verbose('PuppetService', 'messageSendFile(%s, %s)', conversationId, fileBox);
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
return messageId;
|
|
978
|
-
}
|
|
979
|
-
else {
|
|
980
|
-
/**
|
|
981
|
-
* Huan(202110): Deprecated: will be removed after Dec 31, 2022
|
|
982
|
-
*/
|
|
983
|
-
const messageIdWrapper = response.getIdStringValueDeprecated();
|
|
984
|
-
if (messageIdWrapper) {
|
|
985
|
-
return messageIdWrapper.getValue();
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
return; // void
|
|
919
|
+
const request = new grpcPuppet.MessageSendFileRequest();
|
|
920
|
+
request.setConversationId(conversationId);
|
|
921
|
+
const serializedFileBox = await this.serializeFileBox(fileBox);
|
|
922
|
+
request.setFileBox(serializedFileBox);
|
|
923
|
+
log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) about to call grpc`);
|
|
924
|
+
const response = await util.promisify(this.grpcManager.client.messageSendFile
|
|
925
|
+
.bind(this.grpcManager.client))(request);
|
|
926
|
+
const messageId = response.getId();
|
|
927
|
+
log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) grpc called, messageId: ${messageId}`);
|
|
928
|
+
if (messageId) {
|
|
929
|
+
return messageId;
|
|
989
930
|
}
|
|
990
|
-
|
|
991
|
-
|
|
931
|
+
else {
|
|
932
|
+
/**
|
|
933
|
+
* Huan(202110): Deprecated: will be removed after Dec 31, 2022
|
|
934
|
+
*/
|
|
935
|
+
const messageIdWrapper = response.getIdStringValueDeprecated();
|
|
936
|
+
if (messageIdWrapper) {
|
|
937
|
+
return messageIdWrapper.getValue();
|
|
938
|
+
}
|
|
992
939
|
}
|
|
993
|
-
/**
|
|
994
|
-
* Huan(202110): Deprecated: will be removed after Dec 31, 2022
|
|
995
|
-
* The old server will not support `Upload` gRPC method,
|
|
996
|
-
* which I'm expecting the above code will throw a exception,
|
|
997
|
-
* then the below code will be executed.
|
|
998
|
-
*/
|
|
999
|
-
return this.messageSendFileStream(conversationId, fileBox);
|
|
1000
940
|
}
|
|
1001
941
|
async messageSendContact(conversationId, contactId) {
|
|
1002
942
|
log.verbose('PuppetService', 'messageSend("%s", %s)', conversationId, contactId);
|
|
@@ -1074,6 +1014,28 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1074
1014
|
};
|
|
1075
1015
|
return payload;
|
|
1076
1016
|
}
|
|
1017
|
+
async getMessageBroadcastTarget() {
|
|
1018
|
+
log.verbose('PuppetService', 'getMessageBroadcastTarget()');
|
|
1019
|
+
const request = new grpcPuppet.GetMessageBroadcastTargetRequest();
|
|
1020
|
+
const response = await util.promisify(this.grpcManager.client.getMessageBroadcastTarget.bind(this.grpcManager.client))(request);
|
|
1021
|
+
return {
|
|
1022
|
+
contactIds: response.getContactIdsList(),
|
|
1023
|
+
roomIds: response.getRoomIdsList(),
|
|
1024
|
+
};
|
|
1025
|
+
}
|
|
1026
|
+
async createMessageBroadcast(targets, type, content) {
|
|
1027
|
+
log.verbose('PuppetService', 'createMessageBroadcast()');
|
|
1028
|
+
if (!PUPPET.payloads.isPostClient(content)) {
|
|
1029
|
+
throw new Error('can only create broadcast with client post');
|
|
1030
|
+
}
|
|
1031
|
+
const request = new grpcPuppet.CreateMessageBroadcastRequest();
|
|
1032
|
+
const post = await postPayloadToPb(grpcPuppet, content, this.serializeFileBox.bind(this));
|
|
1033
|
+
request.setContent(post);
|
|
1034
|
+
request.setTargetIdsList(targets);
|
|
1035
|
+
request.setType(type);
|
|
1036
|
+
const response = await util.promisify(this.grpcManager.client.createMessageBroadcast.bind(this.grpcManager.client))(request);
|
|
1037
|
+
return response.getId();
|
|
1038
|
+
}
|
|
1077
1039
|
/**
|
|
1078
1040
|
*
|
|
1079
1041
|
* Room
|
|
@@ -1617,57 +1579,7 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1617
1579
|
throw new Error('can only publish client post now');
|
|
1618
1580
|
}
|
|
1619
1581
|
const request = new grpcPuppet.MomentPublishRequest();
|
|
1620
|
-
const post =
|
|
1621
|
-
post.setType(grpcPuppet.PostType.POST_TYPE_MOMENT);
|
|
1622
|
-
for (const item of payload.sayableList) {
|
|
1623
|
-
const sayable = new grpcPuppet.PostSayable();
|
|
1624
|
-
switch (item.type) {
|
|
1625
|
-
case PUPPET.types.Sayable.Text:
|
|
1626
|
-
sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_TEXT);
|
|
1627
|
-
sayable.setText(item.payload.text);
|
|
1628
|
-
sayable.setMentionIdListList(item.payload.mentions);
|
|
1629
|
-
break;
|
|
1630
|
-
case PUPPET.types.Sayable.Attachment: {
|
|
1631
|
-
sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_FILE);
|
|
1632
|
-
const serializedFileBox = typeof item.payload.filebox === 'string' ? item.payload.filebox : await this.serializeFileBox(item.payload.filebox);
|
|
1633
|
-
sayable.setFileBox(serializedFileBox);
|
|
1634
|
-
break;
|
|
1635
|
-
}
|
|
1636
|
-
case PUPPET.types.Sayable.Url: {
|
|
1637
|
-
sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_URL);
|
|
1638
|
-
const urlLinkPayload = item.payload;
|
|
1639
|
-
const pbUrlLinkPayload = urlLinkPayloadToPb(grpcPuppet, urlLinkPayload);
|
|
1640
|
-
sayable.setUrlLink(pbUrlLinkPayload);
|
|
1641
|
-
break;
|
|
1642
|
-
}
|
|
1643
|
-
case PUPPET.types.Sayable.Channel: {
|
|
1644
|
-
sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_CHANNEL);
|
|
1645
|
-
const channelPayload = item.payload;
|
|
1646
|
-
const pbChannelPayload = channelPayloadToPb(grpcPuppet, channelPayload);
|
|
1647
|
-
sayable.setChannel(pbChannelPayload);
|
|
1648
|
-
break;
|
|
1649
|
-
}
|
|
1650
|
-
default:
|
|
1651
|
-
throw new Error(`postPublish unsupported type ${item.type}`);
|
|
1652
|
-
}
|
|
1653
|
-
post.addSayableList(sayable);
|
|
1654
|
-
}
|
|
1655
|
-
if (payload.rootId) {
|
|
1656
|
-
post.setRootId(payload.rootId);
|
|
1657
|
-
}
|
|
1658
|
-
if (payload.parentId) {
|
|
1659
|
-
post.setParentId(payload.parentId);
|
|
1660
|
-
}
|
|
1661
|
-
if (payload.location) {
|
|
1662
|
-
const location = new grpcPuppet.LocationPayload();
|
|
1663
|
-
location.setAccuracy(payload.location.accuracy);
|
|
1664
|
-
location.setAddress(payload.location.address);
|
|
1665
|
-
location.setName(payload.location.name);
|
|
1666
|
-
location.setLatitude(payload.location.latitude);
|
|
1667
|
-
location.setLongitude(payload.location.longitude);
|
|
1668
|
-
post.setLocation(location);
|
|
1669
|
-
}
|
|
1670
|
-
post.setVisibleListList(payload.visibleList || []);
|
|
1582
|
+
const post = await postPayloadToPb(grpcPuppet, payload, this.serializeFileBox.bind(this));
|
|
1671
1583
|
request.setPost(post);
|
|
1672
1584
|
const result = await util.promisify(this.grpcManager.client.momentPublish
|
|
1673
1585
|
.bind(this.grpcManager.client))(request);
|
|
@@ -1820,36 +1732,6 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1820
1732
|
const contactIdsList = response.getContactIdsList();
|
|
1821
1733
|
return contactIdsList;
|
|
1822
1734
|
}
|
|
1823
|
-
/**
|
|
1824
|
-
* @deprecated Will be removed in v2.0
|
|
1825
|
-
*/
|
|
1826
|
-
async messageSendFileStream(conversationId, file) {
|
|
1827
|
-
const request = await packConversationIdFileBoxToPb(grpcPuppet.MessageSendFileStreamRequest)(conversationId, file);
|
|
1828
|
-
const response = await new Promise((resolve, reject) => {
|
|
1829
|
-
const stream = this.grpcManager.client.messageSendFileStream((err, response) => {
|
|
1830
|
-
if (err) {
|
|
1831
|
-
reject(err);
|
|
1832
|
-
}
|
|
1833
|
-
else {
|
|
1834
|
-
resolve(response);
|
|
1835
|
-
}
|
|
1836
|
-
});
|
|
1837
|
-
request.pipe(stream); // Huan(202203): FIXME: as unknown as
|
|
1838
|
-
});
|
|
1839
|
-
const messageId = response.getId();
|
|
1840
|
-
if (messageId) {
|
|
1841
|
-
return messageId;
|
|
1842
|
-
}
|
|
1843
|
-
{
|
|
1844
|
-
/**
|
|
1845
|
-
* Huan(202110): Deprecated: will be removed after Dec 31, 2022
|
|
1846
|
-
*/
|
|
1847
|
-
const messageIdWrapper = response.getIdStringValueDeprecated();
|
|
1848
|
-
if (messageIdWrapper) {
|
|
1849
|
-
return messageIdWrapper.getValue();
|
|
1850
|
-
}
|
|
1851
|
-
}
|
|
1852
|
-
}
|
|
1853
1735
|
healthCheckInterval;
|
|
1854
1736
|
startHealthCheck() {
|
|
1855
1737
|
this.healthCheckInterval = setInterval(() => {
|