webfast 0.1.54 → 0.1.57

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.
@@ -347,6 +347,9 @@ module.exports = async function (program) {
347
347
  }
348
348
  console.log(`Preparing for sending`);
349
349
  sendData.images = allImages;
350
+
351
+ // TODO ADD OTHER DATA
352
+
350
353
  ws.send(JSON.stringify({ type: 'user', clientId: clientId, data : sendData }));
351
354
 
352
355
  }});
@@ -0,0 +1,37 @@
1
+ module.exports = async function(program, url, body) {
2
+ console.log(`Fetch Post`);
3
+ // Register websocket url
4
+ try {
5
+ const headers = {
6
+ accept: 'application/json',
7
+ 'content-type': 'application/json'
8
+ };
9
+
10
+ let theOptions = {
11
+ method: 'get',
12
+ headers: headers,
13
+ body: JSON.stringify(body),
14
+ };
15
+
16
+ // Using standard fetch function
17
+ const response = await fetch(url, theOptions);
18
+ // Get response body
19
+ const respBody = await response.json(); // Assuming the response is JSON
20
+
21
+ // Get response headers
22
+ const respHeaders = response.headers;
23
+
24
+ if (!response.ok) {
25
+ throw new Error(`HTTP error! Status: ${response.status}`);
26
+ }
27
+
28
+ const responseData = respBody;
29
+ console.log('Response Data:', responseData);
30
+
31
+ // Return response data or true to indicate success
32
+ return responseData || true;
33
+ } catch (err) {
34
+ console.error('Error in post:', err.message);
35
+ return false;
36
+ }
37
+ };
@@ -0,0 +1,57 @@
1
+ module.exports = async function(program, url, callback,ws,json) {
2
+ console.log(`Meta get`);
3
+ // Register websocket url
4
+ try {
5
+ await program.fetch.fetchUrl(url, {}, function(error, meta, body) {
6
+ if (error) {
7
+ console.error('Error fetching URL:', error);
8
+ } else {
9
+ console.log('Metadata:', meta);
10
+ const bodyString = body.toString('utf8'); // Convert buffer to string
11
+ console.log('Body data:', bodyString);
12
+ const metaRegex = /<meta[^>]*>/gi;
13
+ const metaTags = bodyString.match(metaRegex);
14
+
15
+ const metaObjects = metaTags.reduce((result, tag) => {
16
+ const matches = tag.match(/(name|property)\s*=\s*"([^"]*)"\s*content\s*=\s*"([^"]*)"/i);
17
+ if (matches && matches.length === 4) {
18
+ const property = matches[2];
19
+ const content = matches[3];
20
+ result[property] = content;
21
+ }
22
+ return result;
23
+ }, {});
24
+
25
+ //console.log(metaObjects);
26
+
27
+ let metas = {}
28
+ const metaSend = [`og:title`,`og:description`,`og:image`,`al:ios:url`,`al:android:url`]
29
+ // Create object loop
30
+ function decodeHtmlEntities(str) {
31
+ return str.replace(/&#(\d+);/g, function(match, dec) {
32
+ return String.fromCharCode(dec);
33
+ });
34
+ }
35
+
36
+ const filteredMetaObjects = Object.keys(metaObjects).reduce((result, key) => {
37
+ if (metaSend.includes(key)) {
38
+ result[key] = decodeHtmlEntities(metaObjects[key]);
39
+ }
40
+ return result;
41
+ }, {});
42
+
43
+ metas = filteredMetaObjects;
44
+ console.log(`Metas`,metas);
45
+
46
+ if (callback != undefined) {
47
+ return callback(metas,ws,json);
48
+ } else {
49
+ return bodyString;
50
+ }
51
+ }
52
+ });
53
+ } catch (err) {
54
+ console.error('Error in post:', err.message);
55
+ return false;
56
+ }
57
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webfast",
3
- "version": "0.1.54",
3
+ "version": "0.1.57",
4
4
  "description": "WebFast! Bot Application, including TON mini-apps for makign it easy and fast to build ini-apps",
5
5
  "main": "index.js",
6
6
  "repository": {