wechaty-puppet-matrix 0.0.10 → 0.0.13

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.
Files changed (46) hide show
  1. package/dist/cjs/src/matrix/cache-manager.js +1 -1
  2. package/dist/cjs/src/matrix/messages/message-location.d.ts +2 -0
  3. package/dist/cjs/src/matrix/messages/message-location.d.ts.map +1 -0
  4. package/dist/cjs/src/matrix/messages/message-location.js +18 -0
  5. package/dist/cjs/src/matrix/service/request.d.ts +55 -0
  6. package/dist/cjs/src/matrix/service/request.d.ts.map +1 -1
  7. package/dist/cjs/src/matrix/service/request.js +365 -1
  8. package/dist/cjs/src/matrix/utils/index.d.ts +3 -0
  9. package/dist/cjs/src/matrix/utils/index.d.ts.map +1 -1
  10. package/dist/cjs/src/matrix/utils/index.js +31 -0
  11. package/dist/cjs/src/puppet-matrix.d.ts +7 -0
  12. package/dist/cjs/src/puppet-matrix.d.ts.map +1 -1
  13. package/dist/cjs/src/puppet-matrix.js +94 -0
  14. package/dist/cjs/src/utils/normalize-filebox.d.ts +6 -0
  15. package/dist/cjs/src/utils/normalize-filebox.d.ts.map +1 -0
  16. package/dist/cjs/src/utils/normalize-filebox.js +46 -0
  17. package/dist/cjs/src/utils/sns-xml-generator.d.ts +19 -0
  18. package/dist/cjs/src/utils/sns-xml-generator.d.ts.map +1 -0
  19. package/dist/cjs/src/utils/sns-xml-generator.js +171 -0
  20. package/dist/esm/src/matrix/cache-manager.js +1 -1
  21. package/dist/esm/src/matrix/messages/message-location.d.ts +2 -0
  22. package/dist/esm/src/matrix/messages/message-location.d.ts.map +1 -0
  23. package/dist/esm/src/matrix/messages/message-location.js +15 -0
  24. package/dist/esm/src/matrix/service/request.d.ts +55 -0
  25. package/dist/esm/src/matrix/service/request.d.ts.map +1 -1
  26. package/dist/esm/src/matrix/service/request.js +365 -1
  27. package/dist/esm/src/matrix/utils/index.d.ts +3 -0
  28. package/dist/esm/src/matrix/utils/index.d.ts.map +1 -1
  29. package/dist/esm/src/matrix/utils/index.js +28 -0
  30. package/dist/esm/src/puppet-matrix.d.ts +7 -0
  31. package/dist/esm/src/puppet-matrix.d.ts.map +1 -1
  32. package/dist/esm/src/puppet-matrix.js +95 -1
  33. package/dist/esm/src/utils/normalize-filebox.d.ts +6 -0
  34. package/dist/esm/src/utils/normalize-filebox.d.ts.map +1 -0
  35. package/dist/esm/src/utils/normalize-filebox.js +42 -0
  36. package/dist/esm/src/utils/sns-xml-generator.d.ts +19 -0
  37. package/dist/esm/src/utils/sns-xml-generator.d.ts.map +1 -0
  38. package/dist/esm/src/utils/sns-xml-generator.js +165 -0
  39. package/package.json +6 -5
  40. package/src/matrix/cache-manager.ts +1 -1
  41. package/src/matrix/messages/message-location.ts +46 -0
  42. package/src/matrix/service/request.ts +483 -2
  43. package/src/matrix/utils/index.ts +62 -0
  44. package/src/puppet-matrix.ts +130 -1
  45. package/src/utils/normalize-filebox.ts +90 -0
  46. package/src/utils/sns-xml-generator.ts +184 -0
@@ -0,0 +1,19 @@
1
+ type Media = {
2
+ fileId: string;
3
+ fileSize: number;
4
+ fileType: number;
5
+ videoDuration: number;
6
+ url: string;
7
+ width: number;
8
+ height: number;
9
+ fileUrl: string;
10
+ fileKey: string;
11
+ thumbUrl: string;
12
+ thumbWidth: number;
13
+ thumbHeight: number;
14
+ };
15
+ export declare const genTextSnsXml: (wxid: string, content: string) => string;
16
+ export declare const genVideoSnsXml: (wxid: string, content: string, media: Media) => string;
17
+ export declare const genImageSnsXml: (wxid: string, contentDesc: string, mediaList: Media[]) => string;
18
+ export {};
19
+ //# sourceMappingURL=sns-xml-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sns-xml-generator.d.ts","sourceRoot":"","sources":["../../../../src/utils/sns-xml-generator.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,aAAa,SAAU,MAAM,WAAW,MAAM,KAAG,MAkD7D,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,MAAM,WAAW,MAAM,SAAS,KAAK,KAAG,MAgD5E,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,MAAM,eAAe,MAAM,aAAa,KAAK,EAAE,KAAG,MAkEtF,CAAA"}
@@ -0,0 +1,165 @@
1
+ export const genTextSnsXml = (wxid, content) => {
2
+ const xmlTemplate = `
3
+ <TimelineObject>
4
+ <id><![CDATA[0]]></id>
5
+ <username><![CDATA[${wxid}]]></username>
6
+ <createTime><![CDATA[${Math.floor(Date.now() / 1000)}]]></createTime>
7
+ <contentDescShowType>0</contentDescShowType>
8
+ <contentDescScene>0</contentDescScene>
9
+ <private><![CDATA[0]]></private>
10
+ <contentDesc><![CDATA[${content}]]></contentDesc>
11
+ <contentattr><![CDATA[0]]></contentattr>
12
+ <sourceUserName></sourceUserName>
13
+ <sourceNickName></sourceNickName>
14
+ <statisticsData></statisticsData>
15
+ <weappInfo>
16
+ <appUserName></appUserName>
17
+ <pagePath></pagePath>
18
+ <version><![CDATA[0]]></version>
19
+ <isHidden>0</isHidden>
20
+ <debugMode><![CDATA[0]]></debugMode>
21
+ <shareActionId></shareActionId>
22
+ <isGame><![CDATA[0]]></isGame>
23
+ <messageExtraData></messageExtraData>
24
+ <subType><![CDATA[0]]></subType>
25
+ <preloadResources></preloadResources>
26
+ </weappInfo>
27
+ <canvasInfoXml></canvasInfoXml>
28
+ <ContentObject>
29
+ <contentStyle><![CDATA[2]]></contentStyle>
30
+ <contentSubStyle><![CDATA[0]]></contentSubStyle>
31
+ <title></title>
32
+ <description></description>
33
+ <contentUrl></contentUrl>
34
+ </ContentObject>
35
+ <actionInfo>
36
+ <appMsg>
37
+ <mediaTagName></mediaTagName>
38
+ <messageExt></messageExt>
39
+ <messageAction></messageAction>
40
+ </appMsg>
41
+ </actionInfo>
42
+ <appInfo><id></id></appInfo>
43
+ <publicUserName></publicUserName>
44
+ <streamvideo>
45
+ <streamvideourl></streamvideourl>
46
+ <streamvideothumburl></streamvideothumburl>
47
+ <streamvideoweburl></streamvideoweburl>
48
+ </streamvideo>
49
+ </TimelineObject>`.replace(/\s+/g, '');
50
+ return xmlTemplate;
51
+ };
52
+ export const genVideoSnsXml = (wxid, content, media) => {
53
+ const xmlTemplate = `
54
+ <TimelineObject>
55
+ <id>0</id>
56
+ <username>${wxid}</username>
57
+ <createTime>${Math.floor(Date.now() / 1000)}</createTime>
58
+ <contentDesc>${content}</contentDesc>
59
+ <contentDescShowType>0</contentDescShowType>
60
+ <contentDescScene>0</contentDescScene>
61
+ <private>0</private>
62
+ <sightFolded>0</sightFolded>
63
+ <showFlag>0</showFlag>
64
+ <appInfo>
65
+ <id></id>
66
+ <version></version>
67
+ <appName></appName>
68
+ <installUrl></installUrl>
69
+ <fromUrl></fromUrl>
70
+ <isForceUpdate>0</isForceUpdate>
71
+ <isHidden>0</isHidden>
72
+ </appInfo>
73
+ <sourceUserName></sourceUserName>
74
+ <sourceNickName></sourceNickName>
75
+ <statisticsData></statisticsData>
76
+ <statExtStr></statExtStr>
77
+ <ContentObject>
78
+ <contentStyle>15</contentStyle>
79
+ <title></title>
80
+ <description>Sight</description>
81
+ <mediaList>
82
+ <media>
83
+ <id>0</id>
84
+ <type>6</type>
85
+ <title></title>
86
+ <description>测试</description>
87
+ <private>0</private>
88
+ <userData></userData>
89
+ <subType>0</subType>
90
+ <videoSize width="${media.width}" height="${media.height}"/>
91
+ <url type="1" md5="951a7d7864d685a92fd2624155794bf9" videomd5="577f55635faf44f595a69ded26d87bcc">${media.fileUrl}</url>
92
+ <thumb type="1">${media.thumbUrl}</thumb>
93
+ <size width="${media.thumbWidth}.000000" height="${media.thumbHeight}.000000" totalSize="${media.fileSize}"/>
94
+ <videoDuration>${media.videoDuration}.000000</videoDuration>
95
+ </media>
96
+ </mediaList>
97
+ </ContentObject>
98
+ </TimelineObject>`.replace(/\s+/g, '');
99
+ return xmlTemplate;
100
+ };
101
+ export const genImageSnsXml = (wxid, contentDesc, mediaList) => {
102
+ const mediaTemplate = (media) => `
103
+ <media>
104
+ <id><![CDATA[0]]></id>
105
+ <type><![CDATA[2]]></type>
106
+ <title></title>
107
+ <description></description>
108
+ <private><![CDATA[0]]></private>
109
+ <url type="1" md5="951a7d7864d685a92fd2624155794bf9"><![CDATA[${media.fileUrl}]]></url>
110
+ <thumb type="1"><![CDATA[${media.thumbUrl}]]></thumb>
111
+ <videoDuration><![CDATA[0.0]]></videoDuration>
112
+ <size totalSize="${media.fileSize}" width="${media.width}" height="${media.height}"></size>
113
+ </media>`.replace(/\s+/g, '');
114
+ const mediaString = mediaList.map(media => mediaTemplate(media)).join('');
115
+ const xmlTemplate = `
116
+ <TimelineObject>
117
+ <id><![CDATA[0]]></id>
118
+ <username><![CDATA[${wxid}]]></username>
119
+ <createTime><![CDATA[${Math.floor(Date.now() / 1000)}]]></createTime>
120
+ <contentDescShowType>0</contentDescShowType>
121
+ <contentDescScene>0</contentDescScene>
122
+ <private><![CDATA[0]]></private>
123
+ <contentDesc><![CDATA[${contentDesc}]]></contentDesc>
124
+ <contentattr><![CDATA[0]]></contentattr>
125
+ <sourceUserName></sourceUserName>
126
+ <sourceNickName></sourceNickName>
127
+ <statisticsData></statisticsData>
128
+ <weappInfo>
129
+ <appUserName></appUserName>
130
+ <pagePath></pagePath>
131
+ <version><![CDATA[0]]></version>
132
+ <isHidden>0</isHidden>
133
+ <debugMode><![CDATA[0]]></debugMode>
134
+ <shareActionId></shareActionId>
135
+ <isGame><![CDATA[0]]></isGame>
136
+ <messageExtraData></messageExtraData>
137
+ <subType><![CDATA[0]]></subType>
138
+ <preloadResources></preloadResources>
139
+ </weappInfo>
140
+ <canvasInfoXml></canvasInfoXml>
141
+ <ContentObject>
142
+ <contentStyle><![CDATA[1]]></contentStyle>
143
+ <contentSubStyle><![CDATA[0]]></contentSubStyle>
144
+ <title></title>
145
+ <description></description>
146
+ <contentUrl></contentUrl>
147
+ <mediaList>${mediaString}</mediaList>
148
+ </ContentObject>
149
+ <actionInfo>
150
+ <appMsg>
151
+ <mediaTagName></mediaTagName>
152
+ <messageExt></messageExt>
153
+ <messageAction></messageAction>
154
+ </appMsg>
155
+ </actionInfo>
156
+ <appInfo><id></id></appInfo>
157
+ <publicUserName></publicUserName>
158
+ <streamvideo>
159
+ <streamvideourl></streamvideourl>
160
+ <streamvideothumburl></streamvideothumburl>
161
+ <streamvideoweburl></streamvideoweburl>
162
+ </streamvideo>
163
+ </TimelineObject>`.replace(/\s+/g, '');
164
+ return xmlTemplate;
165
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wechaty-puppet-matrix",
3
- "version": "0.0.10",
3
+ "version": "0.0.13",
4
4
  "description": "Puppet matrix for Wechaty",
5
5
  "type": "module",
6
6
  "typings": "./dist/esm/src/mod.d.ts",
@@ -44,8 +44,8 @@
44
44
  "@chatie/git-scripts": "^0.6.2",
45
45
  "@chatie/semver": "^0.4.7",
46
46
  "@grpc/grpc-js": "1.9.14",
47
- "@juzi/wechaty": "^1.0.99",
48
- "@juzi/wechaty-puppet": "^1.0.91",
47
+ "@juzi/wechaty": "^1.0.104",
48
+ "@juzi/wechaty-puppet": "^1.0.98",
49
49
  "@swc/core": "^1.3.41",
50
50
  "@types/body-parser": "^1.19.0",
51
51
  "@types/express": "^4.17.11",
@@ -65,8 +65,8 @@
65
65
  "typescript": "^5.6.2"
66
66
  },
67
67
  "peerDependencies": {
68
- "@juzi/wechaty": "^1.0.99",
69
- "@juzi/wechaty-puppet": "^1.0.91"
68
+ "@juzi/wechaty": "^1.0.104",
69
+ "@juzi/wechaty-puppet": "^1.0.98"
70
70
  },
71
71
  "dependencies": {
72
72
  "axios": "^1.6.0",
@@ -75,6 +75,7 @@
75
75
  "date-fns": "^3.6.0",
76
76
  "file-box": "^1.4.15",
77
77
  "fs-extra": "^10.1.0",
78
+ "image-size": "^1.1.1",
78
79
  "lru-cache": "^6.0.0",
79
80
  "node-cleanup": "^2.1.2",
80
81
  "wechaty-web-panel": "^1.6.64",
@@ -41,7 +41,7 @@ export class CacheManager {
41
41
  os.homedir(),
42
42
  path.sep,
43
43
  '.wechaty',
44
- 'puppet-engine-cache',
44
+ 'puppet-matrix-cache',
45
45
  path.sep,
46
46
  this._userName,
47
47
  path.sep,
@@ -0,0 +1,46 @@
1
+ /* eslint-disable @typescript-eslint/no-unnecessary-condition */
2
+ import { xmlToJson } from '../utils/xml-to-json.js'
3
+
4
+ interface LocationXmlSchema {
5
+ msg: {
6
+ location: {
7
+ $: {
8
+ x: string;
9
+ y: string;
10
+ scale: string;
11
+ label: string;
12
+ maptype: string;
13
+ poiname: string;
14
+ poiid: string;
15
+ buildingId: string;
16
+ floorName: string;
17
+ poiCategoryTips?: string;
18
+ poiBusinessHour?: string;
19
+ poiPhone?: string;
20
+ poiPriceTips?: string;
21
+ isFromPoiList?: string;
22
+ adcode?: string;
23
+ cityname?: string;
24
+ };
25
+ };
26
+ };
27
+ }
28
+
29
+ export async function parseLocationMessagePayload (
30
+ messageContent: string,
31
+ ): Promise<any> {
32
+ const appMsgXml: LocationXmlSchema = await xmlToJson(messageContent)
33
+ const { x, y, label, cityname, poiname, poiid, buildingId }
34
+ = appMsgXml?.msg.location.$
35
+
36
+ return {
37
+ accuracy: 0,
38
+ address: label || 'No Address',
39
+ latitude: x,
40
+ longitude: y,
41
+ name: poiname || 'No Name',
42
+ city: cityname || 'No City',
43
+ poiId: poiid || '',
44
+ buildingId: buildingId || '',
45
+ }
46
+ }