Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Pastebin API · devuxd/SeeCodeRun Wiki · GitHub
Skip to content
David Gonzalez edited this page May 5, 2017 · 16 revisions

Description

Pastebins in SeeCodeRun can be shared and you can know when that happens.

API Navigation

Pastebin events are part of the external communications SeeCodeRun offers.

Commands

Share pastebin

This command is used by the Share UI element to copy pastebins. Be aware that the copy is made based on the content the original pastebin had at the time of copying. You can share pastebins so others can work independently based on your current work by taking your current URL and add a ":" right before your pastebin ID starts. A pastebin ID is a unique identifier that lets SeeCodeRun recover your previous work on the platform, it is the string that goes after "https://seecode.run/#".

Note: Do not forget your SeeCodeRun URL(or pastebin id). Otherwise, it will be forever lost in our pastebin sea.

Example

Normally, your browser shows an URL like this one: "https://seecode.run/#-KhF_XVS9OsV8sFl2Ek_", to share the pastebin it should look like this "https://seecode.run/#:-KhF_XVS9OsV8sFl2Ek_". Once the URL is loaded, a new copy of the curretn content of the original pastebin is created.

Events

SeeCodeRun publishes two types of events when users share pastebins: UI and System events.

UI Events

There events are emitted once the the user interacts with the Share UI element.

"shareLinkShown"

Every time the user clicks on the share button, this event will be emitted.

"shareLinkCopied"

Every time the user copies the share link, this event will be emitted.

"shareLinkClicked"

Every time the user clicks the share link, this event will be emitted.

System Events

These events are responses from SeeCodeRun to user actions.

"shareLinkUsed"

Every time a user creates a pastebin based via share command, this event will be emitted. Either the user used the command directly, or the link shown in the Share UI element.

LifeCycle

Previous events are connected as follows: "shareLinkShown" --> "shareLinkCopied" or "shareLinkClicked" --> "shareLinkUsed".

Note: There are cases not done via SeeCodeRun UI. Well, it is a URL, once you got the link you can use it afterwards or use the URL share command ":" to create it.

Usage

To listen pastebin share events, provide the pastebin id and the path "content/share/events":

varshareEventsFirebase=newFirebase(`https://seecoderun.firebaseio.com/test/-KhGIb91d_T3gIjfW5dq/content/share/events`);shareEventsFirebase.limitToLast(1).on('child_added',functionchild_added(snapshot){vardata=snapshot.val();console.log(data);});

Once you listen to the reference data changes, each event data will look like this:

{event: "shareLinkShown",timestamp: 1491716254084}

Try it!

This fiddle shows how it works.

Note: Due to cross-origin constraints, the "most" elegant way of publishing SeeCodeRun events is via Firebase.

Clone this wiki locally