Skip to main content

Small utility that translates a shared screenshot url into a markdown-ready *.png url. Works with dropbox, screencloud, and others.

Project description

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
<title>Convert &quot;Screenshot-sharing&quot; utility links to markdown-ready *.png files I'm sure you are also annoyed that screenshot-sharing utilities like Screencloud and Dropbox only copy a link to their screenshot viewing page, not to the .png file itself.</title>
<style type="text/css">

/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7614 2013-02-21 15:55:51Z milde $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.

See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/

/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }

table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }

.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }

.last, .with-subtitle {
margin-bottom: 0 ! important }

.hidden {
display: none }

a.toc-backref {
text-decoration: none ;
color: black }

blockquote.epigraph {
margin: 2em 5em ; }

dl.docutils dd {
margin-bottom: 0.5em }

object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}

/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/

div.abstract {
margin: 2em 5em }

div.abstract p.topic-title {
font-weight: bold ;
text-align: center }

div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }

div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }

div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }

/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }

div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/

div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }

div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }

div.figure {
margin-left: 2em ;
margin-right: 2em }

div.footer, div.header {
clear: both;
font-size: smaller }

div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }

div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }

div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }

div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }

div.system-messages {
margin: 5em }

div.system-messages h1 {
color: red }

div.system-message {
border: medium outset ;
padding: 1em }

div.system-message p.system-message-title {
color: red ;
font-weight: bold }

div.topic {
margin: 2em }

h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }

h1.title {
text-align: center }

h2.subtitle {
text-align: center }

hr.docutils {
width: 75% }

img.align-left, .figure.align-left, object.align-left {
clear: left ;
float: left ;
margin-right: 1em }

img.align-right, .figure.align-right, object.align-right {
clear: right ;
float: right ;
margin-left: 1em }

img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}

.align-left {
text-align: left }

.align-center {
clear: both ;
text-align: center }

.align-right {
text-align: right }

/* reset inner alignment in figures */
div.align-right {
text-align: inherit }

/* div.align-center * { */
/* text-align: left } */

ol.simple, ul.simple {
margin-bottom: 1em }

ol.arabic {
list-style: decimal }

ol.loweralpha {
list-style: lower-alpha }

ol.upperalpha {
list-style: upper-alpha }

ol.lowerroman {
list-style: lower-roman }

ol.upperroman {
list-style: upper-roman }

p.attribution {
text-align: right ;
margin-left: 50% }

p.caption {
font-style: italic }

p.credits {
font-style: italic ;
font-size: smaller }

p.label {
white-space: nowrap }

p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }

p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }

p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }

p.topic-title {
font-weight: bold }

pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }

pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}

span.classifier {
font-family: sans-serif ;
font-style: oblique }

span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }

span.interpreted {
font-family: sans-serif }

span.option {
white-space: nowrap }

span.pre {
white-space: pre }

span.problematic {
color: red }

span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }

table.citation {
border-left: solid 1px gray;
margin-left: 1px }

table.docinfo {
margin: 2em 4em }

table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }

table.footnote {
border-left: solid 1px black;
margin-left: 1px }

table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }

table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }

/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}

h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }

ul.auto-toc {
list-style-type: none }

</style>
</head>
<body>
<div class="document" id="convert-screenshot-sharing-utility-links-to-markdown-ready-png-files-i-m-sure-you-are-also-annoyed-that-screenshot-sharing-utilities-like-screencloud-and-dropbox-only-copy-a-link-to-their-screenshot-viewing-page-not-to-the-png-file-itself">
<h1 class="title">Convert &quot;Screenshot-sharing&quot; utility links to markdown-ready *.png files I'm sure you are also annoyed that screenshot-sharing utilities like Screencloud and Dropbox only copy a link to their screenshot viewing page, not to the <tt class="docutils literal">.png</tt> file itself.</h1>

<p>So, if you have a python window open, use this module to quickly
<tt class="docutils literal">convert_clipboard()</tt> to a downloadable link.</p>
<p>In the backgound, this simply accesses the page linked by the
screenshot-sharing utility using <tt class="docutils literal">requests</tt>, parses it with
BeautifulSoup, finds the first link that ends in png using regex, and
copies that to the clipboard using pyperclip.</p>
<div class="section" id="installation">
<h1>Installation</h1>
<div class="section" id="python-module">
<h2>Python Module</h2>
<p><tt class="docutils literal">pip install copysc</tt></p>
<p>or</p>
<pre class="code bash literal-block">
$ git clone https://github.com/rv816/copysc.git
$ <span class="name builtin">cd</span> copysc
$ python setup.py install
</pre>
</div>
<div class="section" id="command-line-utility">
<h2>Command Line Utility</h2>
<div class="section" id="linux">
<h3><em>Linux</em></h3>
<pre class="code bash literal-block">
$ <span class="name builtin">export</span> <span class="name variable">copyscpath</span><span class="operator">=</span><span class="keyword">$(</span>python -c <span class="literal string single">'import copysc; print(copysc.__path__[0])'</span><span class="keyword">)</span>
$ <span class="name builtin">echo</span> <span class="name builtin">export</span> <span class="name variable">PATH</span><span class="operator">=</span>$PATH:<span class="name variable">$c</span>opyscpath &gt;&gt; ~/.bashrc
$ sudo chmod <span class="literal number">755</span> <span class="name variable">$c</span>opyscpath/copyscreen.py
</pre>
<p>You may also need to install a clipboard drivers to enable pyperclip to
interact with your X clipboard.</p>
<pre class="literal-block">
$ sudo apt-get install xclip
$ sudo apt-get install xsel
</pre>
</div>
<div class="section" id="mac">
<h3><em>Mac</em></h3>
<pre class="code bash literal-block">
$ <span class="name builtin">export</span> <span class="name variable">copyscpath</span><span class="operator">=</span><span class="keyword">$(</span>python -c <span class="literal string single">'import copysc; print(copysc.__path__[0])'</span><span class="keyword">)</span>
$ <span class="name builtin">echo</span> <span class="name builtin">export</span> <span class="name variable">PATH</span><span class="operator">=</span>$PATH:<span class="name variable">$c</span>opyscpath &gt;&gt; ~/.bash_profile
$ sudo chmod <span class="literal number">755</span> <span class="name variable">$c</span>opyscpath/copyscreen.py
</pre>
</div>
<div class="section" id="windows">
<h3><em>Windows</em></h3>
<p>Install Linux or buy a Mac and see above.</p>
<p><em>I'm sorry. That was a bit rude. I'm sure it's possible, but I don't
have the faintest idea how Windows works</em> <em>My hunch is as follows:</em></p>
<ol class="arabic simple">
<li>Find out the absolute path of the module as follows:
<tt class="docutils literal"><span class="pre">C:\&gt;python</span> <span class="pre">-c</span> 'import copysc; <span class="pre">print(copysc.__path__[0])'</span></tt></li>
<li>Copy that path and add it to your PATH variable on windows.</li>
</ol>
</div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="usage">
<h1>Usage:</h1>
<div class="section" id="as-python-module">
<h2>As python module:</h2>
<pre class="code python literal-block">
<span class="keyword namespace">from</span> <span class="name namespace">copysc.copyscreen</span> <span class="keyword namespace">import</span> <span class="name">convert_clipboard</span>
<span class="name">convert_clipboard</span><span class="punctuation">()</span>
</pre>
<p>OR...you can feed it a link directly</p>
<pre class="code python literal-block">
<span class="keyword namespace">from</span> <span class="name namespace">copysc.copyscreen</span> <span class="keyword namespace">import</span> <span class="name">convert_clipboard</span>
<span class="name">convert_clipboard</span><span class="punctuation">(</span><span class="name">link</span><span class="operator">=</span> <span class="literal string single">'https://www.dropbox.com/s/wg24eyirfaqrbnw/Screenshot%202014-10-17%2018.06.22.png?dl=0'</span><span class="punctuation">)</span>
</pre>
</div>
<div class="section" id="from-the-command-line">
<h2>From the command line:</h2>
<p><tt class="docutils literal">$ copyscreen</tt></p>
<p><em>or</em></p>
<p><tt class="docutils literal">$ copyscreen <span class="pre">http://screencloud.net/v/zOk6</span></tt></p>
</div>
</div>
</div>
</body>
</html>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for copysc, version 0.2.8
Filename, size File type Python version Upload date Hashes
Filename, size copysc-0.2.8-py3-none-any.whl (10.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size copysc-0.2.8.tar.gz (6.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page