functions.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. const { default: got } = require('got/dist/source');
  2. const fetch = require('node-fetch')
  3. const { getBase64 } = require("./fetcher")
  4. const request = require('request')
  5. const emoji = require('emoji-regex')
  6. const fs = require('fs-extra')
  7. const liriklagu = async (lagu) => {
  8. const response = await fetch(`http://scrap.terhambar.com/lirik?word=${lagu}`)
  9. if (!response.ok) throw new Error(`unexpected response ${response.statusText}`);
  10. const json = await response.json()
  11. if (json.status === true) return `Lirik Lagu ${lagu}\n\n${json.result.lirik}`
  12. return `[ Error ] Lirik Lagu ${lagu} tidak di temukan!`
  13. }
  14. const quotemaker = async (quotes, author = 'EmditorBerkelas', type = 'random') => {
  15. var q = quotes.replace(/ /g, '%20').replace('\n','%5Cn')
  16. const response = await fetch(`https://terhambar.com/aw/qts/?kata=${q}&author=${author}&tipe=${type}`)
  17. if (!response.ok) throw new Error(`unexpected response ${response.statusText}`)
  18. const json = await response.json()
  19. if (json.status) {
  20. if (json.result !== '') {
  21. const base64 = await getBase64(json.result)
  22. return base64
  23. }
  24. }
  25. }
  26. const emojiStrip = (string) => {
  27. return string.replace(emoji, '')
  28. }
  29. const fb = async (url) => {
  30. const response = await fetch(`http://scrap.terhambar.com/fb?link=${url}`)
  31. if (!response.ok) throw new Error(`unexpected response ${response.statusText}`)
  32. const json = await response.json()
  33. if (json.status === true) return {
  34. 'capt': json.result.title, 'exts': '.mp4', 'url': json.result.linkVideo.sdQuality
  35. }
  36. return {
  37. 'capt': '[ ERROR ] Not found!', 'exts': '.jpg', 'url': 'https://c4.wallpaperflare.com/wallpaper/976/117/318/anime-girls-404-not-found-glowing-eyes-girls-frontline-wallpaper-preview.jpg'
  38. }
  39. }
  40. const ss = async(query) => {
  41. request({
  42. url: "https://api.apiflash.com/v1/urltoimage",
  43. encoding: "binary",
  44. qs: {
  45. access_key: "2fc9726e595d40eebdf6792f0dd07380",
  46. url: query
  47. }
  48. }, (error, response, body) => {
  49. if (error) {
  50. console.log(error);
  51. } else {
  52. fs.writeFile("./media/img/screenshot.jpeg", body, "binary", error => {
  53. console.log(error);
  54. })
  55. }
  56. })
  57. }
  58. const randomNimek = async (type) => {
  59. var url = 'https://api.computerfreaker.cf/v1/'
  60. switch(type) {
  61. case 'nsfw':
  62. const nsfw = await fetch(url + 'nsfwneko')
  63. if (!nsfw.ok) throw new Error(`unexpected response ${nsfw.statusText}`)
  64. const resultNsfw = await nsfw.json()
  65. return resultNsfw.url
  66. break
  67. case 'hentai':
  68. const hentai = await fetch(url + 'hentai')
  69. if (!hentai.ok) throw new Error(`unexpected response ${hentai.statusText}`)
  70. const resultHentai = await hentai.json()
  71. return resultHentai.url
  72. break
  73. case 'anime':
  74. let anime = await fetch(url + 'anime')
  75. if (!anime.ok) throw new Error(`unexpected response ${anime.statusText}`)
  76. const resultNime = await anime.json()
  77. return resultNime.url
  78. break
  79. case 'neko':
  80. let neko = await fetch(url + 'neko')
  81. if (!neko.ok) throw new Error(`unexpected response ${neko.statusText}`)
  82. const resultNeko = await neko.json()
  83. return resultNeko.url
  84. break
  85. case 'trap':
  86. let trap = await fetch(url + 'trap')
  87. if (!trap.ok) throw new Error(`unexpected response ${trap.statusText}`)
  88. const resultTrap = await trap.json()
  89. return resultTrap.url
  90. break
  91. }
  92. }
  93. const sleep = async (ms) => {
  94. return new Promise(resolve => setTimeout(resolve, ms));
  95. }
  96. const jadwalTv = async (query) => {
  97. const res = await got.get(`https://api.haipbis.xyz/jadwaltv/${query}`).json()
  98. if (res.error) return res.error
  99. switch(query) {
  100. case 'antv':
  101. return `\t\t[ ANTV ]\n${res.join('\n')}`
  102. break
  103. case 'gtv':
  104. return `\t\t[ GTV ]\n${res.join('\n')}`
  105. break
  106. case 'indosiar':
  107. return `\t\t[ INDOSIAR ]\n${res.join('\n')}`
  108. break
  109. case 'inewstv':
  110. return `\t\t[ iNewsTV ]\n${res.join('\n')}`
  111. break
  112. case 'kompastv':
  113. return `\t\t[ KompasTV ]\n${res.join('\n')}`
  114. break
  115. case 'mnctv':
  116. return `\t\t[ MNCTV ]\n${res.join('\n')}`
  117. break
  118. case 'metrotv':
  119. return `\t\t[ MetroTV ]\n${res.join('\n')}`
  120. break
  121. case 'nettv':
  122. return `\t\t[ NetTV ]\n${res.join('\n')}`
  123. break
  124. case 'rcti':
  125. return `\t\t[ RCTI ]\n${res.join('\n')}`
  126. break
  127. case 'sctv':
  128. return `\t\t[ SCTV ]\n${res.join('\n')}`
  129. break
  130. case 'rtv':
  131. return `\t\t[ RTV ]\n${res.join('\n')}`
  132. break
  133. case 'trans7':
  134. return `\t\t[ Trans7 ]\n${res.join('\n')}`
  135. break
  136. case 'transtv':
  137. return `\t\t[ TransTV ]\n${res.join('\n')}`
  138. break
  139. default:
  140. return '[ ERROR ] Channel TV salah! silahkan cek list channel dengan mengetik perintah *!listChannel*'
  141. break
  142. }
  143. }
  144. exports.liriklagu = liriklagu;
  145. exports.quotemaker = quotemaker;
  146. exports.randomNimek = randomNimek
  147. exports.fb = fb
  148. exports.emojiStrip = emojiStrip
  149. exports.sleep = sleep
  150. exports.jadwalTv = jadwalTv
  151. exports.ss = ss