Skip to content

Instantly share code, notes, and snippets.

@relu91

relu91/report.md Secret

Created May 7, 2021 16:51
Show Gist options
  • Save relu91/b31c03ecc91b34b137f7a9b741bfdcfa to your computer and use it in GitHub Desktop.
Save relu91/b31c03ecc91b34b137f7a9b741bfdcfa to your computer and use it in GitHub Desktop.
The list of affected addons

Webthings.io links-to-forms report

Total affacted addons: 9

ActivityPub: yes no

    this.links = [
        self.links = [
 * index.js - Loads the Blinkt adapter.
module.exports = require('./blinkt-adapter');
 * Blinkt!Adapter - an adapter for controlling Pimoroni Blinkt!
 * Property of a Blinkt! device - ie a single RGB LED
class BlinktProperty extends Property {
 * A single Blinkt! RGB LED
class BlinktDevice extends Device {
   * @param {BlinktAdapter} adapter
      new BlinktProperty(
      new BlinktProperty(
      new BlinktProperty(
ommunicate with the Blinkt!
   * @param {BlinktProperty} property
 * Blinkt! Adapter
 * Instantiates 8 BlinktDevices - one for each RGB LED
class BlinktAdapter extends Adapter {
   * createDevices, instantiate one BlinktDevice per RGB LED
   * createDevice - create one BlinktDevice representing an RGB LED
    const id = 'blinkt-led-'+(deviceNum+1);
    const name = 'Blinkt! LED '+(deviceNum+1);
    new BlinktDevice(this, id, name);
   * _gpio_setup from blinkt.py
   * _write_byte from blinkt.py
   * _sof from blinkt.py
   * _eof from blinkt.py
   * to the Blinkt!
evice properties to the Blinkt!
   * we actually send data to the Blinkt!
send all device properties to the Blinkt!
      this.devices['blinkt-led-'+(x+1)].sendProperties();
function loadBlinktAdapter(addonManager) {
  const adapter = new BlinktAdapter(addonManager);
module.exports = loadBlinktAdapter;

Calendar: yes no

  addLink(link) {
    this.links.push({rel: 'alternate',
                     href: link});
Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(
            self.links = [
            self.links = [
Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(
.href = body['full_lan_path'];

Cron: no

Dingz: yes no

                //TODO LED actions (toggle, blink)
    get links() {
    set links(val) {}

Dmx: no

        self.links = [

Eufy: no

    ((this as unknown) as { links: Link[] }).links.push({
'].rsplit('/', 1)[-1]
                                             property_id = thing['properties'][thing_property_key]['links'][0]['href'].rsplit('/', 1)[-1]
(properties[prop]['links'][0]['href'].lastIndexOf('/') + 1);

Foobot: yes no

      this.links.push({

Fritz!: no

      links: [
      this.links[0].mediaType = 'image/png';
      this.links[0].mediaType = 'image/gif';
      this.links[0].mediaType = 'image/jpeg';
    this.links[0].href = `/media/frontier-silicon/${this.device.id}/${filename}`;
    this.links.push({

GitHub: yes no

    this.links = [
        protected links: Link[];

Gotify: no

GPIO: no

                                             property_id = thing['properties'][thing_property_key]['links'][0]['href'].rsplit('/', 1)[-1]
ighlights-"):
ts-")
ref'] = new_href
                                             property_id = thing['properties'][thing_property_key]['links'][0]['href'].rsplit('/', 1)[-1]
(properties[prop]['links'][0]['href'].lastIndexOf('/') + 1);

Homie: no

HTTP: no

INSTEON: yes no

        result = await device.link({ controller: false, group: 4 });
        result = await device.link({ controller: false, group: 3 });
  async link({ controller, group = 1 }) {
    return this.hub.link(this.address, { controller, group });
    this.link({ timeout: timeoutSeconds * 1000 }).then(async (device) => {
  async link({ timeout = 30000 } = {}) {
    const info = await this.hub.link(null, { timeout });
      console.warn('No link information received.');
try to link as a responder. Not fatal if this fails.
          await this.hub.link(info.address, { controller: false });
          console.warn('Unable to link device as responder', e);
add devices from adapter link database...');
(await this.hub.links()).map((info) => info.address));

Kodi: no

        # self.links.append({

LIFX: no

Macros: yes no

    setText(ftext, ...linkedParams) {
is.defaultText = {text: ftext, params: linkedParams};
    setShutdownText(ftext, ...linkedParams) {
.shutdownText = {text: ftext, params: linkedParams};
    addAbility(name, text, ...linkedParams) {
      this.updateAbility(name, text, ...linkedParams);
    updateAbility(name, text, ...linkedParams) {
ties[name] = {text: text, params: linkedParams};
      const linkedParams = obj.params;
      if (selectors.length !== linkedParams.length)
   throw Error('Invalid number of linked parameters passed');
hild(this.getParameter(linkedParams[i]));
.appendChild(this.getInput(linkedParams[i]));
.setAttribute('attribute-name', linkedParams[i]);
his.getInternalAttribute(linkedParams[i]);
      const link = document.createElement('LINK');
      link.rel = 'stylesheet';
      link.type = 'text/css';
      link.href = `/extensions/macrozilla/${path}`;
      head.appendChild(link);
    fs.unlinkSync(this.pathFromDBIdentifier(identifier), this.path);

MAX!: no

const easylink = require("mh-maxsmart2/easylink");
sylink.sendWifiInfo(this.config.wifiInfo.ssid, this.config.wifiInfo.password);

Meross: no

Modbus: no

MyQ: no

MySensors: yes no

        #self.links = []
        self.links = []
        protected links: { rel: string; mediaType: string; href: string; }[];
        this.links = [

ONVIF: yes

    const links = [
      links.push({
          links,
          links: [

OpenSenseMap: yes no

    this.links = [
        protected links: Link[];

P1: no

Philips Hue: yes no

ease press link button`);

PiFace: no

alue.apply(n,e)}};var G="http://www.w3.org/1999/xhtml",$={svg:"http://www.w3.org/2000/svg",xhtml:G,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.

Prowl: no

    this.links = [{rel: 'alternate',

Pulse: no

RF433: no

Ring: no

Roku: no

Sense Hat: yes no

        self.links = [
        self.links = [
        self.links = [

Serial: no

Shelly: no

Slack: no

Sonos: yes

      links: [
          fs.unlink(artUrl, () => {

Speed Test: yes no

        self.links = [

Spotify: yes

        links: [
    (<{links: Link[]}> <unknown> this).links = [
      if (action.hasOwnProperty('links')) {
        action.links = action.links.map((l) => {
      if (event.hasOwnProperty('links')) {
        event.links = event.links.map((l) => {
    if (propertyDescription.hasOwnProperty('links')) {
        for (const link of propertyDescription.links) {
          if (!link.rel || link.rel === 'property') {
            propertyUrl = this.baseHref + link.href;
if (propertyDescription.hasOwnProperty('links')) {
  propertyDescription.links = propertyDescription.links.map((l) => {
    if (description.hasOwnProperty('links')) {
      for (const link of description.links) {
        if (link.rel === 'actions') {
          this.actionsUrl = this.baseHref + link.href;
        } else if (link.rel === 'events') {
          this.eventsUrl = this.baseHref + link.href;
        } else if (link.rel === 'properties') {
        } else if (link.rel === 'alternate') {
          if (link.mediaType === 'text/html') {
            if (!link.href.startsWith('http://') &&
                !link.href.startsWith('https://')) {
              link.proxy = true;
            this.links.push(link);
          } else if (link.href.startsWith('ws://') ||
                     link.href.startsWith('wss://')) {
            this.wsUrl = link.href;
            this.links.push(link);
          if (!link.href.startsWith('http://') &&
              !link.href.startsWith('https://')) {
            link.proxy = true;
          this.links.push(link);
        self.links = [

Timer: no

TP-Link Kasa: yes no

from .tplink_property import TPLinkBulbProperty, TPLinkPlugProperty
from .tplink_device import TPLinkBulb, TPLinkPlug
                         'tplink-adapter',
                         'tplink-adapter',
        database = Database('tplink-adapter')
                _id = 'tplink-' + dev.sys_info['children'][idx]['id']
        _id = 'tplink-' + dev.sys_info['deviceId']
from pkg.tplink_adapter import TPLinkAdapter  # noqa

Twilio: no

        links: [
        links: [
  videoCamera.properties[0].metadata.links.push({

Weather: yes no

      this.links = [
    this.links.push({

Wemo: no

WLED: yes no

    (this as any).links.push({

Yamaha: yes no

    link_control_list?: string[];
    link_audio_delay_list?: string[];
    link_control: string;
    link_audio_delay: string;

Yo: no

Zigbee: yes no

  'linkquality',
  if (Array.isArray(frame.linkKey) || Buffer.isBuffer(frame.linkKey)) {
    data = Buffer.from(frame.linkKey);
    data = Buffer.from(frame.linkKey, 'ascii');
 we might as well set the link
MD.LINK_KEY, { linkKey: 'ZigBeeAlliance09' }));
		if (title.toLowerCase() == 'linkquality') {
ya>>2]=q;var l=0,f=q=0,n=c=0;i.d?(c=n=i.$,q=f=0,l=8192):(c=1,n=0,i.e?(q=4096,f=1,l=16384):(l=i.b||i.link,q=l.length,f=Math.ceil(l.length/4096),l=i.link===cc?32768:40960));a[r+g.tb>>2]=c;a[r+g.zb>>2]=n
					for( var link in reading_list ){
						const element = reading_list[link]
		if (title.toLowerCase() == 'linkquality') {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {
			linkquality: {

zmote: no

Z-Wave: yes (only tests)

    // The Ecolink Flood/Freeze sensor uses the notification CC for the
          jsonProperty.links = jsonProperty.links || [];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment