Files
lib-privatebin/include/libprivatebin.h

90 lines
3.3 KiB
C

#ifndef PRIVATEBIN_API_H
#define PRIVATEBIN_API_H
#ifdef _WIN32
#ifdef PRIVATEBINAPI_EXPORTS
#define PRIVATEBIN_API __declspec(dllexport)
#else
#define PRIVATEBIN_API __declspec(dllimport)
#endif
#else
#define PRIVATEBIN_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* Creates a new paste on a PrivateBin server
*
* @param server_url The URL of the PrivateBin server
* @param content The content to paste
* @param password Optional password for the paste (can be NULL)
* @param expiration Expiration time ("5min", "10min", "1hour", "1day", "1week", "1month", "1year", "never")
* @param format Format of the paste ("plaintext", "syntaxhighlighting", "markdown")
* @param burn_after_reading Set to 1 to enable burn after reading, 0 to disable
* @param open_discussion Set to 1 to enable discussion, 0 to disable
* @param paste_url Output parameter for the URL of the created paste
* @param delete_token Output parameter for the deletion token
* @return 0 on success, error code on failure
*/
PRIVATEBIN_API int create_paste(const char* server_url, const char* content,
const char* password, const char* expiration,
const char* format, int burn_after_reading,
int open_discussion, char** paste_url,
char** delete_token);
/**
* Uploads a file to a PrivateBin server
*
* @param server_url The URL of the PrivateBin server
* @param file_path The path to the file to upload
* @param password Optional password for the paste (can be NULL)
* @param expiration Expiration time ("5min", "10min", "1hour", "1day", "1week", "1month", "1year", "never")
* @param burn_after_reading Set to 1 to enable burn after reading, 0 to disable
* @param open_discussion Set to 1 to enable discussion, 0 to disable
* @param paste_url Output parameter for the URL of the created paste
* @param delete_token Output parameter for the deletion token
* @return 0 on success, error code on failure
*/
PRIVATEBIN_API int upload_file(const char* server_url, const char* file_path,
const char* password, const char* expiration,
int burn_after_reading, int open_discussion,
char** paste_url, char** delete_token);
/**
* Retrieves a paste from a PrivateBin server
*
* @param server_url The URL of the PrivateBin server
* @param paste_id The ID of the paste to retrieve
* @param key The decryption key for the paste
* @param content Output parameter for the content of the paste
* @return 0 on success, error code on failure
*/
PRIVATEBIN_API int get_paste(const char* server_url, const char* paste_id,
const char* key, char** content);
/**
* Deletes a paste from a PrivateBin server
*
* @param server_url The URL of the PrivateBin server
* @param paste_id The ID of the paste to delete
* @param delete_token The deletion token for the paste
* @return 0 on success, error code on failure
*/
PRIVATEBIN_API int delete_paste(const char* server_url, const char* paste_id,
const char* delete_token);
/**
* Frees memory allocated by the API functions
*
* @param str The string to free
*/
PRIVATEBIN_API void free_string(char* str);
#ifdef __cplusplus
}
#endif
#endif // PRIVATEBIN_API_H