mirror of
https://github.com/NekoMonci12/RakunNakun-AI.git
synced 2025-12-19 23:09:15 +00:00
Initial commit
This commit is contained in:
54
pastebinClient.js
Normal file
54
pastebinClient.js
Normal file
@@ -0,0 +1,54 @@
|
||||
const axios = require('axios');
|
||||
const qs = require('qs'); // for form URL-encoded data
|
||||
|
||||
class PastebinClient {
|
||||
/**
|
||||
* Create a new PastebinClient instance.
|
||||
* @param {string} devKey - Your Pastebin developer key.
|
||||
*/
|
||||
constructor(devKey) {
|
||||
this.devKey = devKey;
|
||||
this.apiUrl = 'https://pastebin.com/api/api_post.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new paste on Pastebin.
|
||||
* @param {string} text - The text to paste.
|
||||
* @param {string} expireDate - Expiration for the paste (e.g. '1M' for 1 month).
|
||||
* @param {string} pasteName - Optional paste title.
|
||||
* @param {string} pasteFormat - Optional paste format.
|
||||
* @param {number} pastePrivate - 0=public, 1=unlisted, 2=private.
|
||||
* @returns {Promise<string>} - The URL of the created paste.
|
||||
*/
|
||||
async createPaste(text, expireDate = '1M', pasteName = 'Chat Log', pasteFormat = '', pastePrivate = 1) {
|
||||
// Prepare the payload as form URL encoded data.
|
||||
const payload = {
|
||||
api_dev_key: this.devKey,
|
||||
api_option: 'paste',
|
||||
api_paste_code: text,
|
||||
api_paste_expire_date: expireDate, // "1M" for 1 month
|
||||
api_paste_name: pasteName,
|
||||
api_paste_format: pasteFormat,
|
||||
api_paste_private: pastePrivate,
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await axios.post(this.apiUrl, qs.stringify(payload), {
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
// If Pastebin returns a URL, then paste creation succeeded.
|
||||
// If not, it might return an error message.
|
||||
if (response.data.startsWith('http')) {
|
||||
return response.data;
|
||||
} else {
|
||||
throw new Error(`Pastebin error: ${response.data}`);
|
||||
}
|
||||
} catch (error) {
|
||||
throw new Error(`Pastebin API request failed: ${error.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = PastebinClient;
|
||||
Reference in New Issue
Block a user