1679728440
Wayback is a tool that supports running as a command-line tool and docker container, purpose to snapshot webpage to time capsules.
wayback
) for convenient useThe simplest, cross-platform way is to download from GitHub Releases and place the executable file in your PATH.
From source:
go install github.com/wabarc/wayback/cmd/wayback@latest
From GitHub Releases:
curl -fsSL https://github.com/wabarc/wayback/raw/main/install.sh | sh
or via Bina:
curl -fsSL https://bina.egoist.dev/wabarc/wayback | sh
Using Snapcraft (on GNU/Linux)
sudo snap install wayback
Via APT:
curl -fsSL https://repo.wabarc.eu.org/apt/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/packages.wabarc.gpg
echo "deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/packages.wabarc.gpg] https://repo.wabarc.eu.org/apt/ /" | sudo tee /etc/apt/sources.list.d/wayback.list
sudo apt update
sudo apt install wayback
Via RPM:
sudo rpm --import https://repo.wabarc.eu.org/yum/gpg.key
sudo tee /etc/yum.repos.d/wayback.repo > /dev/null <<EOT
[wayback]
name=Wayback Archiver
baseurl=https://repo.wabarc.eu.org/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.wabarc.eu.org/yum/gpg.key
EOT
sudo dnf install -y wayback
Via Homebrew:
brew tap wabarc/wayback
brew install wayback
$ wayback -h
A command-line tool and daemon service for archiving webpages.
Usage:
wayback [flags]
Examples:
wayback https://www.wikipedia.org
wayback https://www.fsf.org https://www.eff.org
wayback --ia https://www.fsf.org
wayback --ia --is -d telegram -t your-telegram-bot-token
WAYBACK_SLOT=pinata WAYBACK_APIKEY=YOUR-PINATA-APIKEY \
WAYBACK_SECRET=YOUR-PINATA-SECRET wayback --ip https://www.fsf.org
Flags:
--chatid string Telegram channel id
-c, --config string Configuration file path, defaults: ./wayback.conf, ~/wayback.conf, /etc/wayback.conf
-d, --daemon strings Run as daemon service, supported services are telegram, web, mastodon, twitter, discord, slack, irc
--debug Enable debug mode (default mode is false)
-h, --help help for wayback
--ia Wayback webpages to Internet Archive
--info Show application information
--ip Wayback webpages to IPFS
--ipfs-host string IPFS daemon host, do not require, unless enable ipfs (default "127.0.0.1")
-m, --ipfs-mode string IPFS mode (default "pinner")
-p, --ipfs-port uint IPFS daemon port (default 5001)
--is Wayback webpages to Archive Today
--ph Wayback webpages to Telegraph
--print Show application configurations
-t, --token string Telegram Bot API Token
--tor Snapshot webpage via Tor anonymity network
--tor-key string The private key for Tor Hidden Service
-v, --version version for wayback
Wayback one or more url to Internet Archive and archive.today:
wayback https://www.wikipedia.org
wayback https://www.fsf.org https://www.eff.org
Wayback url to Internet Archive or archive.today or IPFS:
// Internet Archive
$ wayback --ia https://www.fsf.org
// archive.today
$ wayback --is https://www.fsf.org
// IPFS
$ wayback --ip https://www.fsf.org
For using IPFS, also can specify a pinning service:
$ export WAYBACK_SLOT=pinata
$ export WAYBACK_APIKEY=YOUR-PINATA-APIKEY
$ export WAYBACK_SECRET=YOUR-PINATA-SECRET
$ wayback --ip https://www.fsf.org
// or
$ WAYBACK_SLOT=pinata WAYBACK_APIKEY=YOUR-PINATA-APIKEY \
$ WAYBACK_SECRET=YOUR-PINATA-SECRET wayback --ip https://www.fsf.org
More details about pinning service.
With telegram bot:
wayback --ia --is --ip -d telegram -t your-telegram-bot-token
Publish message to your Telegram channel at the same time:
wayback --ia --is --ip -d telegram -t your-telegram-bot-token --chatid your-telegram-channel-name
Also can run with debug mode:
wayback -d telegram -t YOUR-BOT-TOKEN --debug
Both serve on Telegram and Tor hidden service:
wayback -d telegram -t YOUT-BOT-TOKEN -d web
URLs from file:
wayback url.txt
cat url.txt | wayback
By default, wayback
looks for configuration options from this files, the following are parsed:
./wayback.conf
~/wayback.conf
/etc/wayback.conf
Use the -c
/ --config
option to specify the build definition file to use.
You can also specify configuration options either via command flags or via environment variables, an overview of all options below.
Flags | Environment Variable | Default | Description |
---|---|---|---|
--debug | DEBUG | false | Enable debug mode, override LOG_LEVEL |
-c , --config | - | - | Configuration file path, defaults: ./wayback.conf , ~/wayback.conf , /etc/wayback.conf |
- | LOG_TIME | true | Display the date and time in log messages |
- | LOG_LEVEL | info | Log level, supported level are debug , info , warn , error , fatal , defaults to info |
- | ENABLE_METRICS | false | Enable metrics collector |
- | WAYBACK_LISTEN_ADDR | 0.0.0.0:8964 | The listen address for the HTTP server |
- | CHROME_REMOTE_ADDR | - | Chrome/Chromium remote debugging address, for screenshot, format: host:port , wss://domain.tld |
- | WAYBACK_POOLING_SIZE | 3 | Number of worker pool for wayback at once |
- | WAYBACK_BOLT_PATH | ./wayback.db | File path of bolt database |
- | WAYBACK_STORAGE_DIR | - | Directory to store binary file, e.g. PDF, html file |
- | WAYBACK_MAX_MEDIA_SIZE | 512MB | Max size to limit download stream media |
- | WAYBACK_MEDIA_SITES | - | Extra media websites wish to be supported, separate with comma |
- | WAYBACK_TIMEOUT | 300 | Timeout for single wayback request, defaults to 300 second |
- | WAYBACK_MAX_RETRIES | 2 | Max retries for single wayback request, defaults to 2 |
- | WAYBACK_USERAGENT | WaybackArchiver/1.0 | User-Agent for a wayback request |
- | WAYBACK_FALLBACK | off | Use Google cache as a fallback if the original webpage is unavailable |
- | WAYBACK_MEILI_ENDPOINT | - | Meilisearch API endpoint |
- | WAYBACK_MEILI_INDEXING | capsules | Meilisearch indexing name |
- | WAYBACK_MEILI_APIKEY | - | Meilisearch admin API key |
-d , --daemon | - | - | Run as daemon service, e.g. telegram , web , mastodon , twitter , discord |
--ia | WAYBACK_ENABLE_IA | true | Wayback webpages to Internet Archive |
--is | WAYBACK_ENABLE_IS | true | Wayback webpages to Archive Today |
--ip | WAYBACK_ENABLE_IP | false | Wayback webpages to IPFS |
--ph | WAYBACK_ENABLE_PH | false | Wayback webpages to Telegra.ph, required Chrome/Chromium |
--ipfs-host | WAYBACK_IPFS_HOST | 127.0.0.1 | IPFS daemon service host |
-p , --ipfs-port | WAYBACK_IPFS_PORT | 5001 | IPFS daemon service port |
-m , --ipfs-mode | WAYBACK_IPFS_MODE | pinner | IPFS mode for preserve webpage, e.g. daemon , pinner |
- | WAYBACK_IPFS_TARGET | web3storage | The IPFS pinning service is used to store files, supported pinners: infura, pinata, nftstorage, web3storage. |
- | WAYBACK_IPFS_APIKEY | - | Apikey of the IPFS pinning service |
- | WAYBACK_IPFS_SECRET | - | Secret of the IPFS pinning service |
- | WAYBACK_GITHUB_TOKEN | - | GitHub Personal Access Token, required the repo scope |
- | WAYBACK_GITHUB_OWNER | - | GitHub account name |
- | WAYBACK_GITHUB_REPO | - | GitHub repository to publish results |
- | WAYBACK_NOTION_TOKEN | - | Notion integration token |
- | WAYBACK_NOTION_DATABASE_ID | - | Notion database ID for archiving results |
-t , --token | WAYBACK_TELEGRAM_TOKEN | - | Telegram Bot API Token |
--chatid | WAYBACK_TELEGRAM_CHANNEL | - | The Telegram public/private channel id to publish archive result |
- | WAYBACK_TELEGRAM_HELPTEXT | - | The help text for Telegram command |
- | WAYBACK_MASTODON_SERVER | - | Domain of Mastodon instance |
- | WAYBACK_MASTODON_KEY | - | The client key of your Mastodon application |
- | WAYBACK_MASTODON_SECRET | - | The client secret of your Mastodon application |
- | WAYBACK_MASTODON_TOKEN | - | The access token of your Mastodon application |
- | WAYBACK_TWITTER_CONSUMER_KEY | - | The customer key of your Twitter application |
- | WAYBACK_TWITTER_CONSUMER_SECRET | - | The customer secret of your Twitter application |
- | WAYBACK_TWITTER_ACCESS_TOKEN | - | The access token of your Twitter application |
- | WAYBACK_TWITTER_ACCESS_SECRET | - | The access secret of your Twitter application |
- | WAYBACK_IRC_NICK | - | IRC nick |
- | WAYBACK_IRC_PASSWORD | - | IRC password |
- | WAYBACK_IRC_CHANNEL | - | IRC channel |
- | WAYBACK_IRC_SERVER | irc.libera.chat:6697 | IRC server, required TLS |
- | WAYBACK_MATRIX_HOMESERVER | https://matrix.org | Matrix homeserver |
- | WAYBACK_MATRIX_USERID | - | Matrix unique user ID, format: @foo:example.com |
- | WAYBACK_MATRIX_ROOMID | - | Matrix internal room ID, format: !bar:example.com |
- | WAYBACK_MATRIX_PASSWORD | - | Matrix password |
- | WAYBACK_DISCORD_BOT_TOKEN | - | Discord bot authorization token |
- | WAYBACK_DISCORD_CHANNEL | - | Discord channel ID, find channel ID |
- | WAYBACK_DISCORD_HELPTEXT | - | The help text for Discord command |
- | WAYBACK_SLACK_APP_TOKEN | - | App-Level Token of Slack app |
- | WAYBACK_SLACK_BOT_TOKEN | - | Bot User OAuth Token for Slack workspace, use User OAuth Token if requires create external link |
- | WAYBACK_SLACK_CHANNEL | - | Channel ID of Slack channel |
- | WAYBACK_SLACK_HELPTEXT | - | The help text for Slack slash command |
- | WAYBACK_NOSTR_RELAY_URL | wss://nostr.developer.li | Nostr relay server url, multiple separated by comma |
- | WAYBACK_NOSTR_PRIVATE_KEY | - | The private key of a Nostr account |
--tor | WAYBACK_USE_TOR | false | Snapshot webpage via Tor anonymity network |
--tor-key | WAYBACK_TOR_PRIVKEY | - | The private key for Tor Hidden Service |
- | WAYBACK_TOR_LOCAL_PORT | 8964 | Local port for Tor Hidden Service, also support for a reverse proxy. This is ignored if WAYBACK_LISTEN_ADDR is set. |
- | WAYBACK_TOR_REMOTE_PORTS | 80 | Remote ports for Tor Hidden Service, e.g. WAYBACK_TOR_REMOTE_PORTS=80,81 |
- | WAYBACK_SLOT | - | Pinning service for IPFS mode of pinner, see ipfs-pinner |
- | WAYBACK_APIKEY | - | API key for pinning service |
- | WAYBACK_SECRET | - | API secret for pinning service |
If both of the definition file and environment variables are specified, they are all will be read and apply, and preferred from the environment variable for the same item.
Prints the resulting options of the targets with --print
, in a Go struct with type, without running the wayback
.
docker pull wabarc/wayback
docker run -d wabarc/wayback wayback -d telegram -t YOUR-BOT-TOKEN # without telegram channel
docker run -d wabarc/wayback wayback -d telegram -t YOUR-BOT-TOKEN -c YOUR-CHANNEL-USERNAME # with telegram channel
For a comprehensive guide, please refer to the complete documentation.
We encourage all contributions to this repository! Open an issue! Or open a Pull Request!
If you're interested in contributing to wayback
itself, read our contributing guide to get started.
Note: All interaction here should conform to the Code of Conduct.
Supported Golang version: See .github/workflows/testing.yml
Author: Wabarc
Source Code: https://github.com/wabarc/wayback
License: GPL-3.0 license
1678999800
Linux — это настраиваемая и гибкая операционная система, предлагающая пользователям множество инструментов и команд для выполнения задач. Одной из таких задач является создание снимков экрана, что можно легко сделать через командную строку, далее прочитайте эту статью, так как она посвящена тому, как делать снимки экрана из командной строки в Linux.
В Linux доступно несколько приложений с интерфейсом командной строки для создания снимков экрана, два наиболее часто используемых и простых в использовании:
Рассмотрим подробнее каждый из этих инструментов.
Для установки scrot на Debian, Ubuntu или Linux Mint используйте менеджер пакетов Apt, так как этот инструмент присутствует в нем по умолчанию:
$ sudo apt install scrot
Теперь мы рассмотрим различные способы создания снимка экрана с помощью scrot:
1. Сделайте снимок экрана всего рабочего стола
Чтобы сделать скриншот всего рабочего стола, просто запустите команду scrot. Это захватит все на рабочем столе и сохранит его в текущем каталоге с форматом файла .png:
$ scrot
Здесь мы видим, что скриншот сохранен в текущем каталоге, который в нашем случае является домашним каталогом.
Чтобы указать каталог для сохранения снимка экрана, выполните приведенную ниже команду, с помощью которой мы также можем изменить имя снимка экрана:
$ scrot ~/Pictures/image.png
Теперь мы видим, что снимок экрана сделан и сохранен в каталоге изображений с именем image.png .
2. Сделайте снимок экрана определенного региона
Используя scrot, мы можем сделать собственный снимок экрана, перетащив курсор мыши, а также сделать снимок экрана определенного окна.
$ scrot -s
После ввода команды щелкните любое окно, которое вы хотите захватить, или нарисуйте прямоугольник с помощью мыши над областью, которую необходимо захватить.
Примечание. Если какое-либо окно блокирует прямоугольный снимок экрана, сначала очистите область, свернув дополнительные окна, и очистите область, прежде чем делать снимок экрана. Вы также можете использовать команду задержки, чтобы сделать снимок экрана через определенное время.
3. Настройка размера снимка экрана
Команда scrot также позволяет настроить размер снимка экрана в диапазоне от 1 до 100. Например, чтобы уменьшить размер до 10% от исходного, используйте следующую команду:
$ scrot -t 10
4. Делаем скриншот с задержкой
Используя scrot, мы также можем сделать снимок экрана с некоторой задержкой, что позволит нам выделить или упомянуть окна перед созданием снимка экрана или показать определенное событие (например, уведомление) внутри снимка экрана. С помощью команды -d N мы можем задержать любой снимок экрана на N секунд.
$ scrot -s -d 5
5. Используйте скриншот scrot в других командах
Одной из очень полезных функций команды scrot является то, что она позволяет делать снимки экрана и использовать их для обработки изображений, например для редактирования или удаления фона. Используя scrot, любой снимок экрана из scrot можно передать в качестве входных данных для других команд, путь к снимку экрана сохраняется в виде строки $f .
$ scrot -e 'mv $f ~/screenshots'
6. Настройка качества скриншота
По умолчанию scrot делает скриншоты с качеством 75. Мы можем улучшить это, определив его где-то между 1 и 100 (более высокое качество означает лучший скриншот).
$ scrot -q 50
Импорт — это еще один инструмент командной строки для создания снимков экрана в Linux . Этот инструмент является частью пакета ImageMagick, который предоставляет набор инструментов для работы с изображениями.
ImageMagick можно установить с помощью:
$ sudo apt install imagemagick
После установки вы можете сделать снимок экрана, выполнив следующую команду:
$ import screenshot.png
Это сделает снимок экрана всего экрана и сохранит его как «screenshot.png» в вашем текущем рабочем каталоге. Вы также можете указать область для захвата, используя параметр -crop:
$ import -crop WxH+X+Y screenshot.png
Где W — ширина , H — высота , X — координата X , а Y — координата Y области, которую необходимо захватить.
Создание скриншотов из командной строки в Linux — это простой и простой процесс благодаря наличию нескольких мощных инструментов, таких как scrot и import . Независимо от того, являетесь ли вы новичком или продвинутым пользователем Linux, эти инструменты обеспечивают гибкий и удобный способ делать снимки экрана в Linux.
Оригинальный источник статьи: https://linuxhint.com/
1678996080
Linux 是一个高度可定制和灵活的操作系统,为用户提供了多种工具和命令来执行任务。其中一项任务是截屏,这可以通过命令行轻松完成,进一步阅读这篇文章,因为它是关于如何在 Linux 中从命令行截屏的。
在 Linux 中有几个命令行界面应用程序可用于截取屏幕截图,其中两个最常用且易于使用的是:
让我们仔细看看这些工具中的每一个。
要在 Debian、Ubuntu 或 Linux Mint 上安装 scrot,请使用 Apt 包管理器,因为该工具默认存在于其中:
$ sudo apt install scrot
现在我们将介绍使用 scrot 截取屏幕截图的不同方法:
1. 截取整个桌面截图
要获取整个桌面屏幕截图,只需运行 scrot 命令。这将捕获桌面上的所有内容并将其以 .png 文件格式保存在当前目录中:
$ scrot
在这里我们可以看到屏幕截图保存在当前目录中,在我们的例子中是主目录。
要指定保存屏幕截图的目录,请运行以下命令,使用它我们还可以更改屏幕截图名称:
$ scrot ~/Pictures/image.png
现在我们可以看到屏幕截图被捕获并保存在名为image.png 的图片目录中。
2. 特定区域截图
使用 scrot 我们可以通过拖动鼠标光标截取自定义屏幕截图,它还允许截取特定窗口的屏幕截图。
$ scrot -s
输入命令后,在任何要捕获的窗口上单击或在需要捕获的区域上用鼠标画一个矩形。
注意:如果有任何窗口挡住了矩形截图,请先通过最小化多余的窗口来清除区域,然后在截屏之前清除该区域。您也可以使用延迟命令在一定时间后截取屏幕截图。
3. 调整截图大小
scrot 命令还允许您在 1 到 100 之间调整屏幕截图大小。例如,要将大小减小到原始大小的 10%,请使用以下命令:
$ scrot -t 10
4.延迟截图
使用 scrot 我们还可以截取一些延迟的屏幕截图,这允许我们在截取屏幕截图之前突出显示或提及窗口或在屏幕截图中显示特定事件(例如,通知)。使用-d N命令我们可以将任何屏幕截图延迟N秒。
$ scrot -s -d 5
5.在其他命令中使用scrot截图
scrot 命令的一个非常有用的功能是它允许您捕获和使用相同的屏幕截图进行图像处理,例如编辑或删除背景。使用 scrot 从 scrot 捕获的任何屏幕截图都可以作为其他命令的输入,屏幕截图路径存储为$f字符串。
$ scrot -e 'mv $f ~/screenshots'
6. 调整截图质量
默认情况下,scrot 以 75 的质量截取屏幕截图。我们可以通过将其定义在 1 到 100 之间的某个位置来改进它(更高的质量意味着更好的屏幕截图)。
$ scrot -q 50
import是另一个用于在 Linux中截取屏幕截图的命令行工具。这个工具是 ImageMagick 包的一部分,它提供了一套图像处理工具。
可以使用以下方式安装 ImageMagick:
$ sudo apt install imagemagick
安装后,您可以通过运行以下命令截取屏幕截图:
$ import screenshot.png
这将截取整个屏幕的屏幕截图并将其保存为当前工作目录中的“screenshot.png” ,您还可以使用 -crop 选项指定要捕获的区域:
$ import -crop WxH+X+Y screenshot.png
其中W 是宽度,H 是高度,X 是 X 坐标, Y 是要捕获区域的Y 坐标。
在 Linux 中从命令行截取屏幕截图是一个简单明了的过程,这要归功于scrot和import等几个强大工具的可用性。无论您是初学者还是高级 Linux 用户,这些工具都提供了一种在 Linux 中捕获屏幕截图的灵活方便的方法。
文章原文出处:https: //linuxhint.com/
1678977916
Linux is a highly customizable and flexible operating system, offering users a variety of tools and commands to perform tasks. One of these tasks is taking screenshots, which can be easily done through the command line, furthur read this article as it is all about how to take screenshots from the command line in Linux.
There are several command line interface applications available for taking screenshots in Linux, the two of the most used easy to use are:
Let’s take a closer look at each of these tools.
To install scrot on Debian, Ubuntu or Linux Mint use the Apt package manager as this tool is by default present in it:
$ sudo apt install scrot
Now we will cover different ways of taking a screenshot using the scrot:
1. Take Entire Desktop Screenshot
To take the entire desktop screenshot simply run the scrot command. This will capture everything on desktop and save it in the current directory with a file format of .png:
$ scrot
Here we can see the screenshot is saved in the current directory that is the home directory in our case.
To specify the directory to save the screenshot run below command, using this we can also change screenshot name:
$ scrot ~/Pictures/image.png
Now we can see the screenshot is captured and saved inside the picture directory with the name image.png.
2. Take Screenshot of Specific Region
Using the scrot we can take a custom screenshot by dragging the mouse cursor and it also allows taking a screenshot of a specific window.
$ scrot -s
Once the command is entered, click over any window which you want to capture or draw a rectangle with the mouse over the region which needs to be captured.
Note: If any window is blocking the rectangular screenshot, first clear the region by minimizing extra windows and clear the area before taking the screenshot. You can also use the delay command to take a screenshot after a certain time.
3. Adjusting Screenshot Size
The scrot command also allows you to adjust the screenshot size between 1 to 100. For example, to reduce size to 10% of the original use following command:
$ scrot -t 10
4. Taking a Screenshot with Delay
Using scrot we can also take a screenshot with some delay which allows us to highlight or mention windows before taking a screenshot or to show a certain event (e.g., notification) inside the screenshot. Using -d N command we can delay any screenshot with N seconds.
$ scrot -s -d 5
5. Use a scrot Screenshot in Other Commands
One of the very useful features of scrot command is that it allows you to capture and use the same screenshot for image processing such as editing or removing background. Using scrot any of the captured screenshot from scrot can be given as an input to other commands, the screenshot path is stored as a $f string.
$ scrot -e 'mv $f ~/screenshots'
6. Adjusting Quality of a Screenshot
By default, scrot takes screenshots in quality at 75. We can improve this by defining it somewhere between 1 to 100 (higher quality means better screenshot).
$ scrot -q 50
The import is another command line tool for taking screenshots in Linux. This tool is part of the ImageMagick package, which provides a suite of image manipulation tools.
The ImageMagick can be installed using:
$ sudo apt install imagemagick
Once installed, you can take a screenshot by running the following command:
$ import screenshot.png
This will take a screenshot of the entire screen and save it as “screenshot.png” in your current working directory, you can also specify the region to be captured by using the -crop option:
$ import -crop WxH+X+Y screenshot.png
Where W is the width, H is the height, X is the X-coordinate, and Y is the Y-coordinate of the region to be captured.
Taking screenshots from the command line in Linux is a straightforward and easy process, thanks to the availability of several powerful tools such as scrot, and import. Whether you’re a beginner or an advanced Linux user, these tools provide a flexible and convenient way to capture screenshots in Linux.
Original article source at: https://linuxhint.com/
1678572000
Create elegant code screenshots of your source code.
CodeImage is the newest tool to help developers to create beautiful screenshots of their code, providing several features to speed up the process to post in social media.
CodeImage architecture consist of a PNPM monorepo, currently subdivided in packages
and apps
.
The front-end application, entirely built with SolidJS.
It currently also relies on these libraries:
The REST API layer built with Fastify, Prisma ORM and Auth0.
@codeimage/ui: contains the source code of the UI kit of CodeImage front-end application
@codeimage/config: contains the base configurations and interfaces for CodeImage
@codeimage/highlight: contains the custom editor and highlighting themes for CodeMirror
@codeimage/dom-export: contains the html-to-image fork which includes several fix for image export
@codeimage/locale: contains a wrapper of @solid-primitives/i18n which includes strict typing for i18n
@codeimage/vanilla-extract: contain the Vanilla Extract plugin fork which includes SolidJS and PNPM fixes to work under monorepo.
@codeimage/prisma-models: contains the Prisma ORM backend models shared across front-end and back-end application.
@codeimage/atomic-state: contain the source code of a small state manager which includes some utilities helper for RxJS and solid-js/store
Warning Read this before opening any PR!
When contributing, it's better to first discuss the change you wish to make via issue or discussion, or any other method with the owners of this repository before making a change.
See the CONTRIBUTING.md guide for more details.
CodeImage is the winner of SolidHack 2022 for the Best Application category!
Author: Riccardoperra
Source Code: https://github.com/riccardoperra/codeimage
License: MIT license
1676629980
With Screenshot Framer you can easily create nice-looking and localized App Store Images.
It's super simple: Screenshot Framer simply puts pictures on top of each other (think Photoshop Layers), allows you to move them around and saves the resulting image to disk. You can specify the path of every image layer and use a .strings
file to localize the displayed texts. Once you're done configuring, you can export all possible image & language combinations at once.
chmod +x /usr/local/bin/Screenshot-Framer-CLI
to make it executable.backgrounds
This folder allows you to specify background images for your screenshots, if you don't want to go all-white.
device_frames
If you want your screenshots framed in a device, you may use any image here. You can for example download Apple's device images or Facebook's Device Assets and copy them into this folder.
Localized Image Folders
(en-US, de-DE, ...) are generated using fastlane snapshot or you may also copy them into this folder. Important is that you have a strings file in this folder called screenshots.strings
.
"1" = "It Starts With a Thought";
"2" = "Add Your Thoughts";
"3" = "Discover Connections";
"4" = "Visualize Your Idea";
"5" = "Productive on the Go";
|
This Number is later replaced with variable "image"
Configuration File
This file contain the configuration for the image export. Open the file iPhone SE
and change the number in the image textfield or language popup. You may also change the position and size of each layer or create new layers.
The main difference to your favorite image editor is that you can specify variables and use them for the image path.
Possible Variables:
$image
can contain only numbers (typically 1-5)$language
contains every sub-folder name in your project folder (in this case Sample Project
) excluding backgrounds, device_frames and Export
In the screenshot below the file is: $language/iPhone SE-$image.png
. This is automatically translated to en-US/iPhone SE-1.png
and this file is then rendered. For German this would for example be translated to de-DE/iPhone SE-1.png
.
Screenshot Framer
on your computer by copying it to /usr/local/bin
and run following commandcd ~/Developer/MyProject/Screenshots
Screenshot-Framer-CLI -project "./iPhone SE.frame"
cd ~/Developer/MyProject/Screenshots
Screenshot-Framer-CLI -project .
Screenshot Framer
to your repository and run it from therecd ~/Developer/MyProject/Screenshots
./Screenshot-Framer-CLI -project .
Please keep in mind that this tool was made to automate screenshots for a very specific need, so it might not fit yours. If you find bugs please create an issue first. Pull Requests are very welcome, but we also reserve the right to not merge them, if they don't take the tool into a direction we need. Therefore it's best to first open an issue and discuss your plans, before jumping right in and implementing it.
Export/$language/iPhone SE-$image framed.png
Screenshot Framer is brought to you by IdeasOnCanvas GmbH, the creator of MindNode for iOS, macOS & watchOS.
Author: IdeasOnCanvas
Source Code: https://github.com/IdeasOnCanvas/ScreenshotFramer
License: View license
1676102160
TRex captures any text right into your Clipboard with magic of OCR.
But what is OCR anyway? Imagine you have a PDF file or a Web page where you can't select the text, image with text on it, or even a YouTube video. Forget retyping it manually; with TRex, you can extract text from anywhere, and it is as easy as taking a screenshot.
TRex lives in the menu bar and available right where you need it the most:
To use TRex:
Demo:
Please note, text editing application on the right is not part of TRex, this is Tot. TRex is designed to be invisible and doesn't have any UI beyond the menu bar app and preferences.
TRex can help you to copy text from:
If you can see it on your screen - TRex can copy it.
Buy TRex from the App Store
Download from GitHub Releases
Install from Homebrew
brew install trex
Runs on macOS Big Sur (11.0) and up.
Every feature in TRex works offline, no internet is needed.
/Applications/TRex.app/Contents/MacOS/cli/trex
trex://capture
trigger capture from screentrex://captureclipboard
trigger capture from clipboardtrex://captureautomation
trigger screen capture and run automationtrex://captureclipboardautomation
trigger capture from clipboard and run automationtrex://shortcut?name=
set Shortcut assigned to "Run Shortcut" automation actiontrex://showPreferences
open app preferencesPortions of this software utilize the following copyrighted material, the use of which is hereby acknowledged:
If you enjoy TRex you may like these as well:
Author: Amebalabs
Source Code: https://github.com/amebalabs/TRex
License: MIT license
1673600160
Chromda is an AWS Lambda function for serverless capturing screenshots of websites.
Provided you already have AWS credentials for Serverless, do:
git clone https://github.com/luisfarzati/chromda
cd chromda
git submodule update --init
npm install
Edit the serverless.yml
file and change the example bucket name with one of your own:
# serverless.yml
custom:
s3Bucket: <your bucket name>
Deploy the function into your AWS account:
npm run deploy
Open the AWS Lambda Console and create the following test event:
{
"source": "aws.events",
"time": "1970-01-01T00:00:00Z",
"detail": {
"url": "https://www.nytimes.com"
}
}
Click Test, wait a few seconds (it might take around 8-10 secs), then you should see a response like:
{
"url": "https://<your bucket name>.s3.amazonaws.com/<uuid>.png"
}
The function accepts different kind of events, extracting the data from the proper body attribute as follows:
Event | Body is extracted from |
---|---|
SNS Message Event | .Records[0].Sns.Message |
SQS Message Event | .Records[0].body |
API Gateway Message Event | .body |
CloudWatch Events Message Event | .detail |
{
// required
"url": "https://google.com",
// optional - valid options: page, viewport, element
// default: viewport
"capture": "page",
// selector of element to capture
// required if capture: element
"selector": ".container",
// optional - S3 key for the image file
// default: uuid()
"s3key": "test.png",
// optional - selectors of elements to exclude
"exclude": [".ad", "video"],
// optional - styles to override
// see Puppeteer.addStyleTag
"styles": [
{
"content": "body { color: #f00; }"
}
],
// optional - puppeteer options
"puppeteer": {
// see Puppeteer.goto options
"navigation": {
"timeout": 30000,
"waitUntil": ["domcontentloaded", "networkidle2"]
},
// see Puppeteer.screenshot options
"screenshot": {
"type": "jpeg",
"quality": 50,
"omitBackground": false
},
// viewport size, overrides env defaults
"viewport": {
"width": 1200,
"height": 2000
}
}
}
Name | Default |
---|---|
S3_BUCKET* | |
S3_REGION* | |
S3_ACL | "public-read" |
CHROMIUM_ARGS | "[]" |
TIMEOUT | "30000" |
IGNORE_HTTPS_ERRORS | "false" |
VIEWPORT_WIDTH | "1920" |
VIEWPORT_HEIGHT | "1200" |
DEVICE_SCALE_FACTOR | "1" |
IS_MOBILE | "false" |
IS_LANDSCAPE | "false" |
# serverless.yml
# ...
custom:
s3Bucket: <your bucket name>
provider:
# ...
layers:
# Replace <version> with the latest version of chrome-aws-lambda-layer
# It depends on the region you are deploying.
# https://github.com/shelfio/chrome-aws-lambda-layer#available-regions
- arn:aws:lambda:${self:provider.region}:764866452798:layer:chrome-aws-lambda:<version>
functions:
captureScreenshot:
# ...
environment:
# configure the environment variables
VIEWPORT_WIDTH: "1920"
VIEWPORT_HEIGHT: "1200"
# ...
events:
# add any of the supported event source(s) you want to use
# the provided example uses SNS
- sns:
arn: !Ref chromdaTopic
topicName: ${self:custom.snsTopic}
resources:
# following the example, we provision an SNS topic
chromdaTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: ${self:custom.snsTopic}
AWS X-Ray support is provided and there are segments for Puppeteer navigation and screenshot:
Author: luisfarzati
Source Code: https://github.com/luisfarzati/chromda
License: MIT license
1673165940
A simple Mac application designed to make uploading images and screenshots to imgur.com quick and effortless.
Download the latest release (macOS 10.9+)
The application will listen for new screenshots taken by the built in screenshot functionality of macOS, so you can use the following shortcuts to capture your screen:
Press CMD ⌘ + SHIFT ⇧ + 3 to take a full-screen screenshot
Press CMD ⌘ + SHIFT ⇧ + 4 to take a rectangular selection of the screen
Press CMD ⌘ + SHIFT ⇧ + 4 + SPACE to capture a specific window or menu
In addition, images can be uploaded manually by either:
As soon as an image is uploaded, the link is copied to your clipboard and a notification is sent:
Preference Name | Description | Issue ID |
---|---|---|
Launch at Login | Allows mac2imgur to start as soon as you log in - this can also be changed from the Login Items tab of the Users & Groups pane of System Preferences . | #53 |
Clear Clipboard | Clears the clipboard when an upload is taking place. | #77 |
Copy Link to Clipboard | Copies the direct link to the uploaded image, if the upload completes successfully. | #88 |
Preference Name | Description | Issue ID |
---|---|---|
Delete After Upload | Causes the original screenshot file to be moved to trash after attempting to upload. | #23 |
Disable Detection | Any new screenshots taken are ignored by the application and not uploaded. | #30 |
Request Confirmation Before Upload | Screenshots are not uploaded automatically. Instead, an alert is displayed, showing the image and image name, allowing you to either proceed or cancel. | #38 |
Downscale from Retina | Retina screenshots are resized (reducing resolution) before upload. More Info. | #52 |
Some aspects of the system screenshot functionality can be customized through defaults
, including the following options:
Key | Value | Result |
---|---|---|
location | Any path, e.g. /Users/[username]/Pictures | Screenshots will be saved to the specified location, if it is valid. Otherwise, the default location (typically ~/Desktop ) will be used. |
type | png , jpg , gif , tiff etc | The screenshot will be saved in the specified format. |
name | Any string, e.g. My Screenshot | The screenshot file will be prefixed with the specified name, e.g. My Screenshot 2016-07-10 at 17.42.17 . |
You can modify the defaults easily from Terminal.app
:
defaults write com.apple.screencapture <key> <value>
defaults delete com.apple.screencapture <key>
Save screenshots using the JPG
format:
defaults write com.apple.screencapture type jpg
Revert the screenshot save location back to the system default:
defaults delete com.apple.screencapture location
More about defaults
can be found from defaults --help
and man defaults
.
For any changes to take effect, you must restart SystemUIServer
, which can be done through Activity Monitor.app
or by running a command such as killall SystemUIServer
.
When changing the screenshot location, it is also necessary to restart mac2imgur.
If you encounter any problems or have an idea for a new feature, don't hesitate to file an issue - but please be as descriptive as possible!
On the same note, pull requests to fix bugs, add features or simply to improve the codebase are greatly appreciated.
mac2imgur is not affiliated with Imgur LLC, but this application would not be possible without the awesome service they offer - so feel free to show them some appreciation! :+1:
⚠️ Warning: This project is not currently actively maintained. ⚠️
Author: mileswd
Source Code: https://github.com/mileswd/mac2imgur
License: GPL-3.0 license
1666193100
Convert a webpage to an image or pdf using headless Chrome
The package can convert a webpage to an image or pdf. The conversion is done behind the scenes by Puppeteer which controls a headless version of Google Chrome.
Here's a quick example:
use Spatie\Browsershot\Browsershot;
// an image will be saved
Browsershot::url('https://example.com')->save($pathToImage);
It will save a pdf if the path passed to the save
method has a pdf
extension.
// a pdf will be saved
Browsershot::url('https://example.com')->save('example.pdf');
You can also use an arbitrary html input, simply replace the url
method with html
:
Browsershot::html('<h1>Hello world!!</h1>')->save('example.pdf');
Browsershot also can get the body of an html page after JavaScript has been executed:
Browsershot::url('https://example.com')->bodyHtml(); // returns the html of the body
If you wish to retrieve an array list with all of the requests that the page triggered you can do so:
$requests = Browsershot::url('https://example.com')
->triggeredRequests();
foreach ($requests as $request) {
$url = $request['url']; //https://example.com/
}
All documentation is available on our documentation site.
Please see CONTRIBUTING for details.
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker.
If you're not able to install Node and Puppeteer, take a look at v2 of browsershot, which uses Chrome headless CLI to take a screenshot. v2
is not maintained anymore, but should work pretty well.
If using headless Chrome does not work for you take a look at at v1
of this package which uses the abandoned PhantomJS
binary.
And a special thanks to Caneco for the logo ✨
Author: Spatie
Source Code: https://github.com/spatie/browsershot
License: MIT license
1661506740
{shinyscreenshot} allows you to capture screenshots of entire pages or parts of pages in Shiny apps. Can be used to capture the current state of a Shiny app, including interactive widgets (such as plotly, timevis, maps, etc). The captured image is automatically downloaded as a PNG image, or it can be saved on the server.
Using {shinyscreenshot} is as easy as it gets. When you want to take a screenshot, simply call screenshot()
and a full-page screenshot will be taken and downloaded as a PNG image. Try it for yourself or watch a short tutorial!
It's so simple that an example isn't needed, but here's one anyway:
library(shiny)
library(shinyscreenshot)
ui <- fluidPage(
textInput("text", "Enter some text", "test"),
actionButton("go", "Take a screenshot")
)
server <- function(input, output) {
observeEvent(input$go, {
screenshot()
})
}
shinyApp(ui, server)
The screenshot()
function can be called any time inside the server portion of a Shiny app. A very common case is to take a screenshot after clicking a button. That case is so common that there's a function for it: screenshotButton()
. It accepts all the same parameters as screenshot()
, but instead of calling it in the server, you call it in the UI.
screenshotButton()
creates a button that, when clicked, will take a screenshot.
Region: By default, the entire page is captured. If you'd like to capture a specific part of the screen, you can use the selector
parameter to specify a CSS selector. For example, if you have a plot with ID myplot
then you can use screenshot(selector="#myplot")
.
Scale: The image file will have the same height and width as what is visible in the browser. Using screenshot(scale=2)
will result in an image that's twice the height and width (and also a larger file size).
Timer: Usually you want the screenshot to be taken immediately, but sometimes you may want to tell Shiny to take a screenshot in, for example, 3 seconds from now. That can be done using screenshot(timer=3)
.
File name: You can choose the name of the downloaded file using the filename
parameter.
Saving on the server: The image screenshot can also be stored on the server using the server_dir
parameter. If the save is successful, input$shinyscreenshot
will store the path of the image.
Module support: As an alternative to the selector
argument, you can also use the id
argument. For example, instead of using screenshot(selector="#myplot")
, you could use screenshot(id="myplot")
. The advantage with using an ID directly is that the id
parameter is module-aware, so even if you're taking a screenshot inside a Shiny module, you don't need to worry about namespacing.
To install the stable CRAN version:
install.packages("shinyscreenshot")
To install the latest development version from GitHub:
install.packages("remotes")
remotes::install_github("daattali/shinyscreenshot")
For years, I saw people asking online how can they take screenshots of the current state of a Shiny app. This question comes up especially with interactive outputs (plotly, timevis, maps, DT, etc). Some of these don't allow any way to save the current state as an image, and a few do have a "Save as image" option, but they only save the base/initial state of the output, rather than the current state after receiving user interaction.
After seeing many people asking about this, one day my R-friend Eric Nantz asked about it as well, which gave me the motivation to come up with a solution.
The screenshots are powered by the 'html2canvas' JavaScript library. They do not always produce perfect screenshots, please refer to 'html2canvas' for more information about the limitations.
The JavaScript libraries used in this package may not be supported by all browsers. {shinyscreenshot} should work on Chrome, Firefox, Edge, Chrome on Android, Safari on iPhone (and probably more that I haven't tested). It does not work in Internet Explorer.
As mentioned above, the libraries used by {shinyscreenshot} do have limitations and may not always work. There are two other packages that came out recently that also provide screenshot functionality which you may try and compare: {snapper} by Jonathan Sidi and {capture} by dreamRs.
RStudio's {webshot} package is also similar, but serves a very different purpose. {webshot} is used to take screenshots of any website (including Shiny apps), but you cannot interact with the page in order to take a screenshot at a specific time.
This package is part of a larger ecosystem of packages with a shared vision: solving common Shiny issues and improving Shiny apps with minimal effort, minimal code changes, and straightforward documentation. Other packages for your Shiny apps:
Package | Description | Demo |
---|---|---|
shinyjs | 💡 Easily improve the user experience of your Shiny apps in seconds | 🔗 |
shinyalert | 🗯️ Easily create pretty popup messages (modals) in Shiny | 🔗 |
timevis | 📅 Create interactive timeline visualizations in R | 🔗 |
shinycssloaders | ⌛ Add loading animations to a Shiny output while it's recalculating | 🔗 |
colourpicker | 🎨 A colour picker tool for Shiny and for selecting colours in plots | 🔗 |
shinybrowser | 🌐 Find out information about a user's web browser in Shiny apps | 🔗 |
shinydisconnect | 🔌 Show a nice message when a Shiny app disconnects or errors | 🔗 |
shinyforms | 📝 Easily create questionnaire-type forms with Shiny | WIP |
Logo design by Alfredo Hernández.
Become a sponsor for {shinyscreenshot}!
Author: daattali
Source Code: https://github.com/daattali/shinyscreenshot
License: View license
1660913882
Elegant st theme with bright colors. Based on alacritty-snazzy.
Clone st from suckless.
$ git clone git://git.suckless.org/st
Apply patch.
Copy st-snazzy.patch into st source folder, and run the following command.
$ cp st-snazzy.patch /where/you/have/st/source
$ cd /where/you/have/st/source
$ git apply st-snazzy.patch
Compile and/or install.
Here is how to then compile and install st from source, just remember to have all the dependencies.
$ make
$ make install clean
Done!
You are now done!
Author: Dko1905
Source Code: https://github.com/Dko1905/st-snazzy
License: MIT license
1655563023
Wayback
Wayback is a tool that supports running as a command-line tool and docker container, purpose to snapshot webpage to time capsules.
wayback
)The simplest, cross-platform way is to download from GitHub Releases and place the executable file in your PATH.
From source:
go get -u github.com/wabarc/wayback/cmd/wayback
From GitHub Releases:
curl -fsSL https://github.com/wabarc/wayback/raw/main/install.sh | sh
or via Bina:
curl -fsSL https://bina.egoist.sh/wabarc/wayback | sh
Using Snapcraft (on GNU/Linux)
sudo snap install wayback
Via APT:
curl -s https://apt.wabarc.eu.org/KEY.gpg | sudo apt-key add -
sudo echo "deb https://apt.wabarc.eu.org/ /" > /etc/apt/sources.list.d/wayback.list
sudo apt update
sudo apt install wayback
Via RPM:
sudo cat > /etc/yum.repos.d/wayback.repo<< EOF
[wayback]
name=Wayback Repository
baseurl=https://rpm.wabarc.eu.org/x86_64/
enabled=1
gpgcheck=0
EOF
sudo yum install -y wayback
Via Homebrew:
brew tap wabarc/wayback
brew install wayback
$ wayback -h
A command-line tool and daemon service for archiving webpages.
Usage:
wayback [flags]
Examples:
wayback https://www.wikipedia.org
wayback https://www.fsf.org https://www.eff.org
wayback --ia https://www.fsf.org
wayback --ia --is -d telegram -t your-telegram-bot-token
WAYBACK_SLOT=pinata WAYBACK_APIKEY=YOUR-PINATA-APIKEY \
WAYBACK_SECRET=YOUR-PINATA-SECRET wayback --ip https://www.fsf.org
Flags:
--chatid string Telegram channel id
-c, --config string Configuration file path, defaults: ./wayback.conf, ~/wayback.conf, /etc/wayback.conf
-d, --daemon strings Run as daemon service, supported services are telegram, web, mastodon, twitter, discord, slack, irc
--debug Enable debug mode (default mode is false)
-h, --help help for wayback
--ia Wayback webpages to Internet Archive
--info Show application information
--ip Wayback webpages to IPFS
--ipfs-host string IPFS daemon host, do not require, unless enable ipfs (default "127.0.0.1")
-m, --ipfs-mode string IPFS mode (default "pinner")
-p, --ipfs-port uint IPFS daemon port (default 5001)
--is Wayback webpages to Archive Today
--ph Wayback webpages to Telegraph
--print Show application configurations
-t, --token string Telegram Bot API Token
--tor Snapshot webpage via Tor anonymity network
--tor-key string The private key for Tor Hidden Service
-v, --version version for wayback
Wayback one or more url to Internet Archive and archive.today:
wayback https://www.wikipedia.org
wayback https://www.fsf.org https://www.eff.org
Wayback url to Internet Archive or archive.today or IPFS:
// Internet Archive
$ wayback --ia https://www.fsf.org
// archive.today
$ wayback --is https://www.fsf.org
// IPFS
$ wayback --ip https://www.fsf.org
For using IPFS, also can specify a pinning service:
$ export WAYBACK_SLOT=pinata
$ export WAYBACK_APIKEY=YOUR-PINATA-APIKEY
$ export WAYBACK_SECRET=YOUR-PINATA-SECRET
$ wayback --ip https://www.fsf.org
// or
$ WAYBACK_SLOT=pinata WAYBACK_APIKEY=YOUR-PINATA-APIKEY \
$ WAYBACK_SECRET=YOUR-PINATA-SECRET wayback --ip https://www.fsf.org
More details about pinning service.
With telegram bot:
wayback --ia --is --ip -d telegram -t your-telegram-bot-token
Publish message to your Telegram channel at the same time:
wayback --ia --is --ip -d telegram -t your-telegram-bot-token --chatid your-telegram-channel-name
Also can run with debug mode:
wayback -d telegram -t YOUR-BOT-TOKEN --debug
Both serve on Telegram and Tor hidden service:
wayback -d telegram -t YOUT-BOT-TOKEN -d web
By default, wayback
looks for configuration options from this files, the following are parsed:
./wayback.conf
~/wayback.conf
/etc/wayback.conf
Use the -c
/ --config
option to specify the build definition file to use.
You can also specify configuration options either via command flags or via environment variables, an overview of all options below.
Flags | Environment Variable | Default | Description |
---|---|---|---|
--debug | DEBUG | false | Enable debug mode, override LOG_LEVEL |
-c , --config | - | - | Configuration file path, defaults: ./wayback.conf , ~/wayback.conf , /etc/wayback.conf |
- | LOG_TIME | true | Display the date and time in log messages |
- | LOG_LEVEL | info | Log level, supported level are debug , info , warn , error , fatal , defaults to info |
- | ENABLE_METRICS | false | Enable metrics collector |
- | HTTP_LISTEN_ADDR | 127.0.0.1:8964 | The listen address for the HTTP server |
- | CHROME_REMOTE_ADDR | - | Chrome/Chromium remote debugging address, for screenshot |
- | WAYBACK_POOLING_SIZE | 3 | Number of worker pool for wayback at once |
- | WAYBACK_BOLT_PATH | ./wayback.db | File path of bolt database |
- | WAYBACK_STORAGE_DIR | - | Directory to store binary file, e.g. PDF, html file |
- | WAYBACK_MAX_MEDIA_SIZE | 512MB | Max size to limit download stream media |
- | WAYBACK_TIMEOUT | 300 | Timeout for single wayback request, defaults to 300 second |
- | WAYBACK_MAX_RETRIES | 2 | Max retries for single wayback request, defaults to 2 |
- | WAYBACK_USERAGENT | WaybackArchiver/1.0 | User-Agent for a wayback request |
- | WAYBACK_FALLBACK | off | Use Google cache as a fallback if the original webpage is unavailable |
- | WAYBACK_MEILI_ENDPOINT | - | Meilisearch API endpoint |
- | WAYBACK_MEILI_INDEXING | capsules | Meilisearch indexing name |
- | WAYBACK_MEILI_APIKEY | - | Meilisearch admin API key |
-d , --daemon | - | - | Run as daemon service, e.g. telegram , web , mastodon , twitter , discord |
--ia | WAYBACK_ENABLE_IA | true | Wayback webpages to Internet Archive |
--is | WAYBACK_ENABLE_IS | true | Wayback webpages to Archive Today |
--ip | WAYBACK_ENABLE_IP | false | Wayback webpages to IPFS |
--ph | WAYBACK_ENABLE_PH | false | Wayback webpages to Telegra.ph, required Chrome/Chromium |
--ipfs-host | WAYBACK_IPFS_HOST | 127.0.0.1 | IPFS daemon service host |
-p , --ipfs-port | WAYBACK_IPFS_PORT | 5001 | IPFS daemon service port |
-m , --ipfs-mode | WAYBACK_IPFS_MODE | pinner | IPFS mode for preserve webpage, e.g. daemon , pinner |
- | WAYBACK_IPFS_TARGET | infura | The IPFS pinning service is used to store files, supported pinners: infura, pinata, nftstorage, web3storage. |
- | WAYBACK_IPFS_APIKEY | - | Apikey of the IPFS pinning service |
- | WAYBACK_IPFS_SECRET | - | Secret of the IPFS pinning service |
- | WAYBACK_GITHUB_TOKEN | - | GitHub Personal Access Token, required the repo scope |
- | WAYBACK_GITHUB_OWNER | - | GitHub account name |
- | WAYBACK_GITHUB_REPO | - | GitHub repository to publish results |
- | WAYBACK_NOTION_TOKEN | - | Notion integration token |
- | WAYBACK_NOTION_DATABASE_ID | - | Notion database ID for archiving results |
-t , --token | WAYBACK_TELEGRAM_TOKEN | - | Telegram Bot API Token |
--chatid | WAYBACK_TELEGRAM_CHANNEL | - | The Telegram public/private channel id to publish archive result |
- | WAYBACK_TELEGRAM_HELPTEXT | - | The help text for Telegram command |
- | WAYBACK_MASTODON_SERVER | - | Domain of Mastodon instance |
- | WAYBACK_MASTODON_KEY | - | The client key of your Mastodon application |
- | WAYBACK_MASTODON_SECRET | - | The client secret of your Mastodon application |
- | WAYBACK_MASTODON_TOKEN | - | The access token of your Mastodon application |
- | WAYBACK_TWITTER_CONSUMER_KEY | - | The customer key of your Twitter application |
- | WAYBACK_TWITTER_CONSUMER_SECRET | - | The customer secret of your Twitter application |
- | WAYBACK_TWITTER_ACCESS_TOKEN | - | The access token of your Twitter application |
- | WAYBACK_TWITTER_ACCESS_SECRET | - | The access secret of your Twitter application |
- | WAYBACK_IRC_NICK | - | IRC nick |
- | WAYBACK_IRC_PASSWORD | - | IRC password |
- | WAYBACK_IRC_CHANNEL | - | IRC channel |
- | WAYBACK_IRC_SERVER | irc.libera.chat:6697 | IRC server, required TLS |
- | WAYBACK_MATRIX_HOMESERVER | https://matrix.org | Matrix homeserver |
- | WAYBACK_MATRIX_USERID | - | Matrix unique user ID, format: @foo:example.com |
- | WAYBACK_MATRIX_ROOMID | - | Matrix internal room ID, format: !bar:example.com |
- | WAYBACK_MATRIX_PASSWORD | - | Matrix password |
- | WAYBACK_DISCORD_BOT_TOKEN | - | Discord bot authorization token |
- | WAYBACK_DISCORD_CHANNEL | - | Discord channel ID, find channel ID |
- | WAYBACK_DISCORD_HELPTEXT | - | The help text for Discord command |
- | WAYBACK_SLACK_APP_TOKEN | - | App-Level Token of Slack app |
- | WAYBACK_SLACK_BOT_TOKEN | - | Bot User OAuth Token for Slack workspace, use User OAuth Token if requires create external link |
- | WAYBACK_SLACK_CHANNEL | - | Channel ID of Slack channel |
- | WAYBACK_SLACK_HELPTEXT | - | The help text for Slack slash command |
--tor | WAYBACK_USE_TOR | false | Snapshot webpage via Tor anonymity network |
--tor-key | WAYBACK_TOR_PRIVKEY | - | The private key for Tor Hidden Service |
- | WAYBACK_TOR_LOCAL_PORT | 8964 | Local port for Tor Hidden Service, also support for a reverse proxy |
- | WAYBACK_TOR_REMOTE_PORTS | 80 | Remote ports for Tor Hidden Service, e.g. WAYBACK_TOR_REMOTE_PORTS=80,81 |
- | WAYBACK_TORRC | /etc/tor/torrc | Using torrc for Tor Hidden Service |
- | WAYBACK_SLOT | - | Pinning service for IPFS mode of pinner, see ipfs-pinner |
- | WAYBACK_APIKEY | - | API key for pinning service |
- | WAYBACK_SECRET | - | API secret for pinning service |
If both of the definition file and environment variables are specified, they are all will be read and apply, and preferred from the environment variable for the same item.
Prints the resulting options of the targets with --print
, in a Go struct with type, without running the wayback
.
docker pull wabarc/wayback
docker run -d wabarc/wayback wayback -d telegram -t YOUR-BOT-TOKEN # without telegram channel
docker run -d wabarc/wayback wayback -d telegram -t YOUR-BOT-TOKEN -c YOUR-CHANNEL-USERNAME # with telegram channel
Archive.org and Archive.today are currently supported, the next step mind support the followings platform:
Bot friendly instance:
Q: How to keep the Tor hidden service hostname?
A: For the first time to run the wayback
service, keep the key from the output message (the key is the part after private key:
below) and next time to run the wayback
service to place the key to the --tor-key
option or the WAYBACK_TOR_PRIVKEY
environment variable.
[INFO] Web: important to keep the private key: d005473a611d2b23e54d6446dfe209cb6c52ddd698818d1233b1d750f790445fcfb5ece556fe5ee3b4724ac6bea7431898ee788c6011febba7f779c85845ae87
We encourage all contributions to this repository! Open an issue! Or open a Pull Request!
If you're interested in contributing to wayback
itself, read our contributing guide to get started.
Note: All interaction here should conform to the Code of Conduct.
Supported Golang version: See .github/workflows/testing.yml
Author: wabarc
Source Code: https://github.com/wabarc/wayback
License: GPL-3.0 license
1650282011
A menudo, la forma más conveniente de recordar algo o almacenar información es tomar una captura de pantalla. Pero en lugar de tomar varias capturas de pantalla a la vez, es mucho más fácil tomar una captura de pantalla con desplazamiento.
Algunos dispositivos tienen esta función incorporada, otros no. Pero eso no significa que no pueda usar soluciones alternativas para crear una captura de pantalla con desplazamiento, independientemente del dispositivo que esté usando.
En este artículo, entraremos en todos los detalles sobre cómo tomar una captura de desplazamiento y responderemos algunas de las preguntas más comunes sobre el tema.
Los usuarios de Mac pueden tomar una captura de pantalla presionando Shift + Command + 5 en el teclado. Desde el panel emergente, pueden seleccionar la parte de la pantalla que desean capturar.
Sin embargo, no puede usar esta opción para una captura de pantalla con desplazamiento. Lo que necesitará es la aplicación de terceros Capto , que es un grabador y editor de pantalla para Mac. Esto es lo que haces a continuación:
Esta acción dará como resultado una captura de pantalla de página completa. Y la imagen se guardará automáticamente en la biblioteca de su Mac.
Si es un usuario de iPhone, las capturas de pantalla de desplazamiento no son algo que su dispositivo tenga incorporado. Una de las opciones que tienes es grabar tu pantalla mientras haces scroll. Pero eso dará como resultado un archivo de video, no una imagen, y es posible que no sea lo que está buscando.
Todavía puede crear capturas de pantalla de páginas largas, pero solo si usa el navegador Safari en su iPhone y si está usando iOS 13. Entonces, si desea capturar un sitio web de página completa en su iPhone, esto es lo que debe hacer necesitas hacer:
La función Imprimir pantalla es increíblemente útil para los usuarios de Windows. Hasta que necesite desplazarse y ajustar una página web. La única solución alternativa es usar una aplicación como ShareX . Esta es una herramienta gratuita para compartir archivos, captura de pantalla y productividad general. Así es como lo usa para tomar capturas de pantalla de desplazamiento:
En ShareX, podrá ver la ruta donde se guardó la captura de pantalla de su página web desplazable.
Los dispositivos Android son uno de los pocos que tienen incorporada la función de captura de pantalla con desplazamiento. Al menos la mayoría de ellos lo hacen.
Samsung, Huawei, LG, Motorola y otros permiten a sus usuarios tomar capturas de pantalla de conversaciones largas, publicaciones en redes sociales y páginas web de manera muy eficiente. Le mostraremos cómo se ve este proceso en los teléfonos Samsung y Huawei como ejemplo.
Los dispositivos Samsung agregarán automáticamente esta captura de pantalla larga a su carpeta "Capturas de pantalla".
Cuando termine, Huawei mostrará la captura de pantalla y puede elegir editarla de inmediato o dejarla como está.
Chromebook usa Chrome OS, que no tiene una función de captura de pantalla de desplazamiento incorporada. Pero tiene la siguiente mejor opción escondida en las Herramientas para desarrolladores. Puede crear un archivo PNG de la captura de pantalla completa de la página web siguiendo estos pasos:
El problema es que las imágenes PNG no se pueden ampliar con Chromebook OS y es difícil leer nada. Sin embargo, puede transferirlo a Google Drive, donde podrá hacer zoom y desplazarse.
Si su navegador de elección es Chrome, es posible que una captura de pantalla con desplazamiento no sea tan fácil. La forma más sencilla de resolver esto es usar una extensión como GoFullPage . Es completamente gratis, así como sin publicidad, e incluso tiene accesos directos que puede usar.
Otra opción es buscar la función Herramientas para desarrolladores y evitar las extensiones por completo. Así es como funciona:
Si tiene más preguntas sobre cómo tomar una captura de pantalla con desplazamiento, quizás las respuestas a continuación le proporcionen más aclaraciones.
La única aplicación que admite esto de forma nativa en iOS es Safari.
Sí, lo hace. Al menos la mayoría de los teléfonos Android más nuevos, como Samsung, LG, Huawei y otros, tienen una función de captura de pantalla de desplazamiento incorporada.
Las capturas de pantalla son parte de nuestra vida diaria de muchas maneras. ¿Con qué frecuencia ves a alguien publicando una captura de pantalla de un tweet divertido en lugar de adjuntar un enlace? A menudo es mucho más fácil de esa manera.
Pero las capturas de pantalla desplazables son importantes cuando no desea perderse un solo detalle de una publicación o información esencial. Te dan la opción de crear un solo archivo en lugar de varios. Con suerte, hemos proporcionado las soluciones para desplazar capturas de pantalla independientemente del dispositivo que esté utilizando.
¿Con qué frecuencia necesita tomar capturas de pantalla con desplazamiento? Háganos saber en la sección de comentarios.
1650281779
多くの場合、何かを覚えたり情報を保存したりするための最も便利な方法は、スクリーンショットを撮ることです。ただし、一度に複数のスクリーンショットを撮るよりも、スクロールするスクリーンショットを撮る方がはるかに簡単です。
この機能が組み込まれているデバイスもあれば、組み込まれていないデバイスもあります。ただし、これは、使用しているデバイスに関係なく、回避策を使用してスクロールスクリーンショットを作成できないことを意味するものではありません。
この記事では、スクロールキャプチャの取得に関するすべての詳細を説明し、主題に関する最も一般的な質問のいくつかに回答します。
Macユーザーは、キーボードのShift + Command+5を押すことでスクリーンショットを撮ることができます。ポップアップパネルから、キャプチャしたい画面の部分を選択できます。
ただし、このオプションをスクロールスクリーンショットに使用することはできません。必要なのは、Mac用のスクリーンレコーダーおよびエディターであるサードパーティのアプリCaptoです。次に行うことは次のとおりです。
このアクションにより、フルページのスクリーンショットが作成されます。また、画像は自動的にMacのライブラリに保存されます。
iPhoneユーザーの場合、スクリーンショットのスクロールはデバイスに組み込まれているものではありません。あなたが持っているオプションの1つは、スクロールしながら画面を記録することです。しかし、それは画像ではなくビデオファイルになり、それはあなたが探しているものではないかもしれません。
長いページのスクリーンショットを作成することはできますが、iPhoneでSafariブラウザを使用している場合、およびiOS 13を使用している場合に限ります。したがって、iPhoneでフルページのWebサイトのスクリーンショットを作成する場合は、次のようにします。あなたがする必要があります:
Print Screen機能は、Windowsユーザーにとって非常に便利です。Webページをスクロールしてスナップする必要があるまで。唯一の回避策は、ShareXなどのアプリを使用することです。これは、無料のファイル共有、画面キャプチャ、および全体的な生産性ツールです。スクロールスクリーンショットを撮るためにそれを使用する方法は次のとおりです。
ShareXでは、スクロールするWebページのスクリーンショットが保存されたパスを確認できます。
Androidデバイスは、スクロールスクリーンショット機能が組み込まれている数少ないデバイスの1つです。少なくともそれらのほとんどはそうします。
Samsung、Huawei、LG、Motorolaなどを使用すると、ユーザーは長い会話、ソーシャルメディアの投稿、およびWebページのスクリーンショットを非常に効率的に撮ることができます。例として、SamsungとHuaweiの電話でこのプロセスがどのように見えるかを示します。
Samsungデバイスは、この長いスクリーンショットを「Screenshots」フォルダーに自動的に追加します。
完了すると、Huaweiはスクリーンショットを表示し、すぐに編集するか、そのままにするかを選択できます。
Chromebookは、スクリーンショットのスクロール機能が組み込まれていないChromeOSを使用しています。しかし、開発者ツールには次善の策が隠されています。次の手順に従って、完全なWebページのスクリーンショットのPNGファイルを作成できます。
問題は、Chromebook OSではPNG画像を拡大できず、何も読みにくいことです。ただし、Googleドライブに転送して、ズームやスクロールを行うことができます。
選択したブラウザがChromeの場合、スクリーンショットのスクロールはそれほど簡単ではない可能性があります。これを解決する最も簡単な方法は、GoFullPageなどの拡張機能を使用することです。完全に無料で、広告もありません。また、使用できるショートカットもあります。
もう1つのオプションは、開発者ツール機能を探して、拡張機能を完全に回避することです。仕組みは次のとおりです。
スクロールするスクリーンショットを撮る方法についてさらに質問がある場合は、以下の回答でさらに明確になります。
iOSでこれをネイティブにサポートする唯一のアプリはSafariです。
はい、そうです。少なくともSamsung、LG、Huaweiなどのほとんどの新しいAndroidスマートフォンには、スクロールスクリーンショット機能が組み込まれています。
スクリーンショットは、さまざまな意味で私たちの日常生活の一部です。リンクを添付する代わりに、誰かが面白いツイートのスクリーンショットを投稿しているのをどのくらいの頻度で見ますか?多くの場合、その方がはるかに簡単です。
ただし、投稿の詳細や重要な情報を見逃したくない場合は、スクリーンショットをスクロールすることが重要です。複数のファイルではなく、単一のファイルを作成するオプションがあります。うまくいけば、使用しているデバイスに関係なく、スクリーンショットをスクロールするためのソリューションが提供されています。
スクロールするスクリーンショットを撮る必要がある頻度はどれくらいですか?以下のコメントセクションでお知らせください。