Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

NaolShow/RentrySharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

24 Commits

Repository files navigation

πŸ“ RentrySharp


Β« Interact with https://rentry.co and/or https://rentry.org, a markdown pastebin-like service that allows custom url, password to edit and remove Β»


The library is around ~300 lines of code and has been made to be simple, lightweight. There is only one dependency which is:

This dependency is needed because the JSON Api of https://rentry.co doesn't allow everything (like deleting a file, modifying it's url and/or code) And so I need to use the HTML/Form Api which requires to get back the errors through HTML Source and here's how AngleSharp helps me to parse it

πŸš€ Quick Start

As stated before, this library is made to be simple, so there is only one class that lets you interact with the service!

Paste

Structure

Quick pseudo-code to see the whole structure of the class 'Paste':

class Paste:
// - Some static stuff
static Uri RentryUri; // Uri of the service that will be used
static HttpClientHandler HttpClientHandler;
static HttpClient HttpClient;
// - Properties
// Can be null to get a random value on next create
string? Id;
string? Password;
// - Constructors
// Initialize a Paste that will have a random Id/Password on the next Create call
Paste();
// Initialize a Paste to which you will only be able to see it's content
Paste(string id);
// Initialize a Paste to which you will be able to see it's content, edit and remove it
Paste(string id, string password);
// - Actions (async and non async versions!)
// Get the content of the Paste
string Text; or string GetTextAsync();
// Create the Paste on Rentry
void Create(string text); or string CreateAsync(string text);
// Edit the Paste on Rentry (let any value to null to keep the previous one)
void Edit(string? id, string? password, string? text) or void EditAsync(string? id, string? password, string? text)
// Delete the Paste
void Delete(); or void DeleteAsync();
// Determines if the Paste exists
bool Exists; or bool ExistsAsync();

(All the code is documented, so if you need more informations, just check it out!)

Examples

Create and Delete

// Create a paste with a random id/password
Paste rentryPaste = new Paste();
rentryPaste.Create("Creating a paste on https://rentry.co using RentrySharp");
Console.WriteLine($"Created a Paste with Id={rentryPaste.Id} and Password={rentryPaste.Password} (Uri={rentryPaste.Uri})");
// Wait for the user to press enter
Console.WriteLine("Press ENTER to delete the Paste");
Console.ReadLine();
rentryPaste.Delete();

Edit

// Get the paste (https://rentry.co/rentrysharp)
Paste rentryPaste = new Paste("rentrysharp", "pastePassword");
// Edit it's password (other values are null so I keep the Paste's content and id!)
rentryPaste.Edit(password: "myNewPassword");
Console.WriteLine($"Check the Paste and it's new password here: {rentryPaste.Uri}");

Exists and GetText

// Get the paste (https://rentry.co/rentrysharp)
Paste rentryPaste = new Paste("rentrysharp");
// If the paste exists
if (rentryPaste.Exists) {
 // Write it's content
 Console.WriteLine(rentryPaste.Text);
} else Console.WriteLine($"Sadly... the Paste '{rentryPaste.Id}' doesn't exist!");

About

Simple and straightforward library that helps to interact with https://rentry.co and/or https://rentry.org which is a markdown pastebin-like service that allows you to host texts with a personalized "url", a password to modify and delete them.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /