Advertisement
agunq

Untitled

Mar 15th, 2024 (edited)
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. const axios = require("axios");
  2.  
  3. const X_API_KEY = "xxxx";
  4.  
  5. function delay(ms) {
  6. return new Promise((resolve) => setTimeout(resolve, ms));
  7. }
  8.  
  9. async function makeRequestWithRetry(url, maxRetries = 5) {
  10. try {
  11. const {data} = await axios.get(url, {headers: {'X-API-KEY': X_API_KEY}})
  12. if (!data.data.image) {
  13. throw new Error('Received undefined data');
  14. }
  15. console.log(data)
  16. return data.data.image;
  17.  
  18. } catch (error) {
  19. if (maxRetries > 0) {
  20. await delay(2000);
  21. console.log(`Request failed. Retrying... (Attempts left: ${maxRetries})`);
  22. return makeRequestWithRetry(url, maxRetries - 1);
  23. }
  24. throw error;
  25. }
  26. }
  27.  
  28. async function upScaller(prompt){
  29. const formData = axios.toFormData({"image_file": prompt})
  30. let {data} = await axios({
  31. method: 'POST',
  32. url: 'https://techhk.aoscdn.com/api/tasks/visual/scale',
  33. data: formData,
  34. headers: {
  35. 'X-API-KEY': X_API_KEY,
  36. 'Content-Type': 'multipart/form-data;',
  37. },
  38. });
  39.  
  40. let task_id = data.data.task_id;
  41. const url_r = `https://techhk.aoscdn.com/api/tasks/visual/scale/${task_id}`
  42. let url_image = await makeRequestWithRetry(url_r)
  43. return url_image
  44. }
  45.  
  46. module.exports = { upScaller };
  47.  
  48. //dibawah ini hanya code test
  49. //(async ()=> {
  50. //const fs = require('fs');
  51. //pathToFile = "./flower.png"
  52. //console.log(await upScaller(fs.createReadStream(pathToFile)))
  53. //})()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement