webfast 0.1.84 → 0.1.86

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -130,6 +130,19 @@ program.modules.dependOn({REQUIRE},program,`{UNIQUE_NAME}-sync`,function(){
130
130
  console.log(`Depend On CallBack`);
131
131
  });
132
132
  ```
133
+ ## NEW BETA FEATURE
134
+ Feature where youo can add a special frame for multiple views through telegram without reloading
135
+ ````
136
+ await web.fast.telegram(`frame`).set(id,`https://${window.location.hostname}/concepts/esimco/package#${id}`,async function(id){
137
+ console.log(`Clicked Close`,id);
138
+ const frame = jQuery(`[wbfst-frame="${id}"]`);
139
+ console.log(`The Frame`,frame);
140
+ jQuery(frame).animate({ opacity:0 }, 600,function(){
141
+ jQuery(this).remove();
142
+ });
143
+
144
+ });
145
+ ````
133
146
 
134
147
  ## License
135
148
 
@@ -97,6 +97,71 @@ web.fast = {
97
97
  list : function(data) {
98
98
  console.log(`Processing List`);
99
99
  }
100
+ },
101
+ telegram : function(action){
102
+ // check if action is to set frame
103
+ if (action == `frame`) {
104
+ return {
105
+ get : async function(id) {
106
+ console.log(`Get Frame for ID`,id);
107
+ },
108
+ close : async function(id) {
109
+ console.log(`Close Frame`);
110
+ },
111
+ set : async function(id,url,closeAction,zIndex = 9990) {
112
+ if (web.fast.user != undefined) {
113
+ //console.error(`NO USER`);
114
+ //return window.location.href = url;
115
+ window.Telegram.WebApp.HapticFeedback.impactOccurred('medium');
116
+ }
117
+ console.log(`Telegram Frame Set`,id,url,closeAction);
118
+ let iframe = document.createElement('iframe');
119
+ iframe.src = url; // Replace with your desired URL
120
+
121
+ const settedID = ``+id;
122
+ // Set additional attributes (optional)
123
+ iframe.style.border = 'none'; // Remove the border
124
+ iframe.style.width = '100vw'; // Set width to 100vw
125
+ iframe.style.height = '100vh'; // Set height to 100vh
126
+ iframe.style.top = '0'; // Set height to 100vh
127
+ iframe.style.left = '0'; // Set height to 100vh
128
+ iframe.style[`z-index`] = zIndex; // Set height to 100vh
129
+ iframe.id = settedID;
130
+
131
+ iframe.style.position = 'fixed';
132
+
133
+ // Append the iframe to the body
134
+ document.body.appendChild(iframe);
135
+ jQuery(iframe).attr(`id`,settedID);
136
+ jQuery(iframe).attr(`wbfst-frame`,settedID);
137
+
138
+ try {
139
+ //window.Telegram.WebApp.web_app_open_link(url);
140
+ if (web.fast.user != undefined) {
141
+ window.closeIframe = function() {
142
+ console.log(`Close Iframe`,id);
143
+ //jQuery(`#${id}`).hide();
144
+ closeAction(id);
145
+ }
146
+ } else {
147
+ // Set on click event
148
+ if (closeAction != undefined) {
149
+ console.log(`Set Close Action`);
150
+ window.closeIframe = function() {
151
+ console.log(`Close Iframe`,id);
152
+ //jQuery(`#${id}`).hide();
153
+ closeAction(id);
154
+ }
155
+ }
156
+ }
157
+
158
+ } catch (err) {
159
+ console.error(err);
160
+ console.error(`Error opening link`,url);
161
+ }
162
+ }
163
+ }
164
+ }
100
165
  }
101
166
  }
102
167
  // Connect to the Socket.IO server
@@ -67,65 +67,67 @@ module.exports = async function(db,collection,query,one = false,array) {
67
67
  }
68
68
 
69
69
  // Check if profile image to get it from db
70
- if (result.profileImage != undefined && array.image == true) {
71
- const profileImage = await program.modules.data.file.downloadBuffer(result.profileImage,process.env.dbName);
72
-
73
- // Set in dynamic routing for serving
74
- let sizeMeta = {};
75
- let other = {}
76
- for (let pi in profileImage) {
77
- // Profile image
78
- const theImage = profileImage[pi];
79
-
80
- // Get the meta
81
- const imageMeta = theImage.metadata;
82
-
83
- // Sizes
84
- const size = imageMeta.size;
85
-
86
- const sizeKey = `${size.width}x${size.height}`;
87
- const setUUID = program.uuid.v4();
88
- sizeMeta[setUUID] = {
89
- buffer : theImage.buffer,
90
- meta : imageMeta
70
+ if (result != undefined) {
71
+ if (result.profileImage != undefined && array.image == true) {
72
+ const profileImage = await program.modules.data.file.downloadBuffer(result.profileImage,process.env.dbName);
73
+
74
+ // Set in dynamic routing for serving
75
+ let sizeMeta = {};
76
+ let other = {}
77
+ for (let pi in profileImage) {
78
+ // Profile image
79
+ const theImage = profileImage[pi];
80
+
81
+ // Get the meta
82
+ const imageMeta = theImage.metadata;
83
+
84
+ // Sizes
85
+ const size = imageMeta.size;
86
+
87
+ const sizeKey = `${size.width}x${size.height}`;
88
+ const setUUID = program.uuid.v4();
89
+ sizeMeta[setUUID] = {
90
+ buffer : theImage.buffer,
91
+ meta : imageMeta
92
+ }
93
+ console.log(`The Size Meta`);
91
94
  }
92
- console.log(`The Size Meta`);
93
- }
94
95
 
95
- // Now we have sizes thingy so create a route for this specific uuid
96
- const dynamicLink = `/dynamic/${result.profileImage}/list`;
97
- result.imageList = `${process.env.url}${dynamicLink.slice(1)}`;
98
- result.images = sizeMeta;
99
-
100
- const routeCheck = await routeExists(dynamicLink);
101
- if (!routeCheck) {
102
- program.express.app.get(dynamicLink, async (req, res) => {
103
- // Requesting image
104
- console.log(`Requesting dynamic link`);
105
- // Send buffer image as image
106
- // Set content type header to indicate that you're sending an image
107
- res.setHeader('Content-Type', 'application/json');
108
-
109
- // Send the image buffer as the response body
110
- for (let sizeKey in sizeMeta) {
111
- const item = sizeMeta[sizeKey];
112
- other[sizeKey] = item.meta;
113
-
114
- // Create dynamic url for this on
115
- const imageDynamicPath = `/dynamic/${sizeKey}.${item.meta.type}`;
116
- const imageLinkURL = `https://${process.env.url}${imageDynamicPath.slice(1)}`
117
- //other[sizeKey].link = imageLinkURL;
118
-
119
- // generate dynamic url
96
+ // Now we have sizes thingy so create a route for this specific uuid
97
+ const dynamicLink = `/dynamic/${result.profileImage}/list`;
98
+ result.imageList = `${process.env.url}${dynamicLink.slice(1)}`;
99
+ result.images = sizeMeta;
100
+
101
+ const routeCheck = await routeExists(dynamicLink);
102
+ if (!routeCheck) {
103
+ program.express.app.get(dynamicLink, async (req, res) => {
104
+ // Requesting image
105
+ console.log(`Requesting dynamic link`);
106
+ // Send buffer image as image
107
+ // Set content type header to indicate that you're sending an image
108
+ res.setHeader('Content-Type', 'application/json');
109
+
110
+ // Send the image buffer as the response body
111
+ for (let sizeKey in sizeMeta) {
112
+ const item = sizeMeta[sizeKey];
113
+ other[sizeKey] = item.meta;
114
+
115
+ // Create dynamic url for this on
116
+ const imageDynamicPath = `/dynamic/${sizeKey}.${item.meta.type}`;
117
+ const imageLinkURL = `https://${process.env.url}${imageDynamicPath.slice(1)}`
118
+ //other[sizeKey].link = imageLinkURL;
119
+
120
+ // generate dynamic url
121
+
122
+ }
120
123
 
121
- }
122
-
123
- res.send(JSON.stringify(other, null, 2));
124
- });
125
- }
126
- console.log(`Profile Image`);
124
+ res.send(JSON.stringify(other, null, 2));
125
+ });
126
+ }
127
+ console.log(`Profile Image`);
127
128
 
128
- // generate paths
129
+ // generate paths
130
+ }
129
131
  }
130
132
 
131
133
  if (callback != undefined) {
@@ -392,7 +392,7 @@ module.exports = async function (program) {
392
392
  // Check if function is running in program modules that you can add in the init scirpt when using remote
393
393
  if (program.express.process != undefined) {
394
394
  try {
395
- let resp = await program.express.process[split[0]][split[1]][split[2]](program,ws,json,data,path,clientId);
395
+ let resp = await program.express.process[split[0]][split[1]][split[2]](program,ws,json,data,path,clientId,ws);
396
396
  if (resp != false) {
397
397
  ws.send(JSON.stringify(resp));
398
398
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webfast",
3
- "version": "0.1.84",
3
+ "version": "0.1.86",
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": {
@@ -25,14 +25,17 @@
25
25
  "generator",
26
26
  "mini-app",
27
27
  "express",
28
- "bots",
28
+ "bot",
29
29
  "famework",
30
30
  "ejs",
31
31
  "javascript",
32
32
  "jquery",
33
33
  "webfast",
34
34
  "dynamic",
35
- "model"
35
+ "model",
36
+ "mini app",
37
+ "webflow",
38
+ "lowcode"
36
39
  ],
37
40
  "author": "Kai Gartner",
38
41
  "license": "ISC",