All Projects → robkorn → urbit-content-archiver

robkorn / urbit-content-archiver

Licence: MIT license
A CLI application which allows you to archive Urbit channels and all linked content in them.

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to urbit-content-archiver

7 Zip Zstd
7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard
Stars: ✭ 2,150 (+6415.15%)
Mutual labels:  archiver
wip
WIP & naenae: CLI utilities to easily manage Work In Progress with Git
Stars: ✭ 46 (+39.39%)
Mutual labels:  ship
archiver-zip-encrypted
Plugin for archiver to create ZIP archives with password using either AES or legacy Zip 2.0 encryption
Stars: ✭ 50 (+51.52%)
Mutual labels:  archiver
Node Archiver
a streaming interface for archive generation
Stars: ✭ 2,300 (+6869.7%)
Mutual labels:  archiver
kahoy
Simple Kubernetes raw manifests deployment tool
Stars: ✭ 33 (+0%)
Mutual labels:  ship
home-urbit
Sovereign software for the Urbit internet appliance.
Stars: ✭ 56 (+69.7%)
Mutual labels:  urbit
Hayden
Ultra-low resource 4chan/altchan thread and board archiver
Stars: ✭ 25 (-24.24%)
Mutual labels:  archiver
suite
arvo enrichment
Stars: ✭ 78 (+136.36%)
Mutual labels:  urbit
hangar
This is a plugin for the Kerbal Space Program. It provides several modules and parts to store complete vessels that aren't needed to free CPU of their burden.
Stars: ✭ 16 (-51.52%)
Mutual labels:  ship
Urbit
An operating function
Stars: ✭ 2,970 (+8900%)
Mutual labels:  urbit
Ripme
Downloads albums in bulk
Stars: ✭ 2,748 (+8227.27%)
Mutual labels:  archiver
NSV13
NSV13, a Ship-to-ship Combat SS13 Server
Stars: ✭ 79 (+139.39%)
Mutual labels:  ship
create-landscape-app
Get started making a simple app for Landscape with a few commands.
Stars: ✭ 77 (+133.33%)
Mutual labels:  urbit
Keka
The macOS file archiver
Stars: ✭ 2,609 (+7806.06%)
Mutual labels:  archiver
urbit
Connects to a running Urbit ship via JavaScript
Stars: ✭ 17 (-48.48%)
Mutual labels:  urbit
Diskernet
💾 Diskernet - An internet on yer disk. Full text search archive from your browsing and bookmarks. Weclome! to the Diskernet: Your preferred backup solution. It's like you're still online! Disconnect with Diskernet, an internet for the post-online apocalypse. Or the airplane WiFi. Or the site goes down. Or ... You get the picture. Get Diskernet.…
Stars: ✭ 2,788 (+8348.48%)
Mutual labels:  archiver
Vercel
Develop. Preview. Ship.
Stars: ✭ 8,015 (+24187.88%)
Mutual labels:  ship
subreddit-archiver
Python utility to archive and keep up-to-date archives of reddit subreddits. Archives to SQLite databases.
Stars: ✭ 21 (-36.36%)
Mutual labels:  archiver
urbit-docker
No description or website provided.
Stars: ✭ 16 (-51.52%)
Mutual labels:  urbit
urbit-visor
Urbit Visor is an extension which transforms your web browser into a first class Urbit client.
Stars: ✭ 65 (+96.97%)
Mutual labels:  urbit

The Urbit Content Archiver is a small CLI application that exports channels from your Urbit ship and auto-downloads any directly linked content locally in order to preserve and archive the content for the future. The archiver supports media files (jpg, png, gif, mp3, flac, mkv, mp4, flc, etc.), archives (zip, 7z, tar, etc.), torrents, and text-based files (epub, pdf, doc, txt, etc.)

This application uses the Rust Urbit HTTP API Crate.

awesome urbit badge

Using The Urbit Content Archiver

Usage:
        urbit-content-archiver chat <ship> <name> [--config=<file_path> --output=<folder_path>]
        urbit-content-archiver notebook <ship> <name> [--config=<file_path> --output=<folder_path>]
Options:
      --config=<file_path>  Specify a custom path to a YAML ship config file.
      --output=<folder_path>  Specify a custom path where the output files will be saved.

As can be seen above, the Urbit Content Archiver is quite straightforward to use. It uses a non-interactive interface in order to allow it to be interoperable with other tools/applications. This allows for setting up cron-jobs to say archive a chat every X hours, setup hotkeys to do it on-command, or anything you can imagine in between. Any previously archived content is skipped over (not downloaded again), thereby allowing you to keep running the archiver on the same channels and only downloading new content.

Current Supported Commands & Flags

chat

This command allows you to export and archive any chat which your ship has joined as a markdown file. Any content files that are linked to in the chat will be automatically downloaded locally and linked within the markdown as well.

It can be used as such:

./urbit-content-archiver chat ~darrux-landes development

The chat graph will be requested from your ship (may take a number of seconds for your ship to process the request depending on chat size), and then once received, processed into a clean markdown formatting style as seen above (do note the above is a processed preview from the markdown).

The markdown chat archive is saved locally as <ship>-<name>.md and the downloaded content is stored in the archived-content folder.

notebook

This command allows you to export and archive any notebook which your ship has joined as a markdown file. Any media or content files that are linked in the notebook (via the []() markdown linking format) will be automatically downloaded locally and linked within the markdown as well.

It can be used as such:

./urbit-content-archiver notebook ~bollug-worlus index-weekly

The chat graph will be requested from your ship (may take a number of seconds for your ship to process the request depending on chat size), and then once received, processed into a clean markdown formatting style as seen above (do note the above is a processed preview from the markdown).

The markdown chat archive is saved locally as <ship>-<name>.md and the downloaded content is stored in the archived-content folder.

--config=<file_path>

This flag allows you to specify which ship config yaml file to use via file path. This and other flags can be useful for many circumstances, such as setting up a cron job.

--output=<folder_path>

This flag allows you to specify the output folder path where the archived data will be saved.

--skip-downloading

This flag allows you to skip downloading content files locally.

Building The Application

Ensure that you have the latest version of Rust installed and the libssl-dev package on Ubuntu (aka openssl-devel on Fedora, and potentially slightly different on other distros).

  1. Clone this repository and enter into the folder.

  2. Run the setup script which will compile and prepare everything for you.

sh setup.sh
  1. The Urbit Content Archiver application will be compiled, moved into the deployed folder, and begin using the application.

  2. Use the archiver:

./urbit-content-archiver chat ~darrux-landes development
  1. If you haven't specified one already, the ship_config.yaml will be automatically generated for you and will require editing to add your Urbit ship's ip/port/+code.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].