How to use html-entities - 10 common examples

To help you get started, we’ve selected a few html-entities examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github statico / memorybot / lib / engine.js View on Github external
async handleMessage (bot, sender, channel, isDirect, msg) {
    // Ignore ourself.
    if (sender === bot.identity.id || sender === bot.identity.name) return

    const {mbMeta} = bot
    const team = bot.identifyTeam()
    const shouldLearn = isDirect || mbMeta.ambient // Should we be learning factoids?
    const shouldReply = isDirect || !mbMeta.direct // Should we reply to this?
    const isVerbose = mbMeta.verbose // TODO: Combine with shouldLearn

    // Sometimes Slack sends HTML entities.
    msg = Entities.decode(msg)

    // Basic input sanitization.
    msg = msg.substr(0, MAX_FACTOID_SIZE).trim().replace(/\0/g, '').replace(/\n/g, ' ')

    // Simple reply helper.
    const reply = text => bot.reply({channel}, {text})

    // Used to parse a factoid's contents and reply with it.
    const parseAndReply = async (key, value, tell = null) => {
      // Factoids are stored as { key: "foo", value: "is bar" }
      let [, verb, rest] = Array.from(value.match(/^(is|are)\s+(.*)/i))
      value = rest

      // Split on |, but don't split on \|. Use an HTML entity as a separator.
      value = value.replace(/\\\|/g, '\\|')
      value = this.oneOf(value.split(/\|/i)).trim()
github brh55 / google-news-rss / index.js View on Github external
const assert = require('assert');
const queryString = require('query-string');
const Entities = require('html-entities').AllHtmlEntities;
const pify = require('pify');
const cheerio = require('cheerio');
const striptags = require('striptags');
const forOwn = require('lodash.forown');
const es6Promise = require('es6-promise');

es6Promise.polyfill();

const isoFetch = require('isomorphic-fetch');
let parseString = require('xml2js').parseString;

const entities = new Entities();
const decode = entities.decode;

parseString = pify(parseString);

const flattenArticles = article => {
	let flattenObj = {};
	forOwn(article, (value, key) => {
		// omit guid
		if (key === 'guid') {
			return;
		}
		const mergeObj = {};
		mergeObj[key] = value[0];
		flattenObj = Object.assign(flattenObj, mergeObj);
	});
	return flattenObj;
github rastapasta / foodsharing / src / sagas / conversations.tsx View on Github external
CONVERSATION_SUCCESS,
  CONVERSATION_ID_REQUEST,

  CONVERSATIONS_REQUEST,
  CONVERSATIONS_SUCCESS,
  MESSAGE_SUCCESS,
  MESSAGE_READ,
  WEBSOCKET_MESSAGE,
  CONVERSATION_ID_SUCCESS,
  BELLS_SUCCESS
} from '../common/constants'

import { MessageType, Bell } from '../common/typings'
import { Actions } from 'react-native-router-flux'

const entities = new AllHtmlEntities()
    ,countUnread = (conversations: any[]) =>
      conversations.reduce(
        (num, conversation) => num + (conversation.unread !== "0" ? 1 : 0),
        0
      )

function* fetch() {
  try {
    // Pull the conversations from the API
    const conversations = yield getConversations()

    // Decode HTML entities before the content gets into the hands of any other method
    for (const conversation of conversations)
      conversation.last_message = entities.decode(conversation.last_message)

    // ... and publish it on the bus
github medialab / website / wilson / templating.js View on Github external
const cheerio = require('cheerio');
const Entities = require('html-entities').AllHtmlEntities;

const entities = new Entities();

const TITLE = /^H[123456]$/;
const POINTLESS_P = /<p><br>&lt;\/p&gt;/g;
const RAW_IFRAME = /]*&gt;[^&lt;]*&lt;\/iframe&gt;/g;

function getImageOrientation(width, height) {

  if (!width || !height)
    return 'paysage';

  // TODO: What about squares?
  // TODO: keep with and height to help with browser rendering
  return width &gt;= height ? 'paysage' : 'portrait';
}

function getImageClassName(format, width, height, even) {</p>
github laurent22 / joplin / ReactNativeClient / lib / htmlUtils.js View on Github external
const urlUtils = require('lib/urlUtils.js');
const Entities = require('html-entities').AllHtmlEntities;
const htmlentities = new Entities().encode;

// [\s\S] instead of . for multiline matching
// https://stackoverflow.com/a/16119722/561309
const imageRegex = //gi;
const anchorRegex = //gi;

class HtmlUtils {
	headAndBodyHtml(doc) {
		const output = [];
		if (doc.head) output.push(doc.head.innerHTML);
		if (doc.body) output.push(doc.body.innerHTML);
		return output.join('\n');
	}

	extractImageUrls(html) {
		if (!html) return [];
github strogonoff / ngx-draft-js / demo-app / src / app / app.component.ts View on Github external
import * as md5 from 'md5';
import { Component, AfterContentInit } from '@angular/core';

import { RichEditor, INLINE_STYLES, BLOCK_TYPES } from '../../../angular-draft-js/editors/rich';

import * as html from 'html';
import { js_beautify } from 'js-beautify';
import { AllHtmlEntities } from 'html-entities';


const htmlEntities = new AllHtmlEntities();

// In these strings whitespace and linebreaks are important,
// as they will be rendered inside of a <pre>.
const configHead = htmlEntities.encode(`@Component({template: \`
  `);
const configFoot = htmlEntities.encode(`\`})
class NgxDraftDemo {
`);

</pre>
github LakeYS / Discord-Trivia-Bot / triviabot.js View on Github external
game[id].correctId = 0;
  }
  else {
    // Sort the answers in reverse alphabetical order.
    answers.sort();
    answers.reverse();

    for(var i = 0; i &lt;= answers.length-1; i++) {
      answers[i] = answers[i].toString();

      if(answers[i] === correct_answer) {
        game[id].correctId = i;
      }

      answerString = `${answerString}**${Letters[i]}:** ${entities.decode(answers[i])}${getConfigVal("debug-mode")&amp;&amp;i===game[id].correctId?" *(Answer)*":""}\n`;
    }
  }

  var categoryString = entities.decode(question.category);

  var timer = getConfigVal("round-length", channel);

  if(gameMode === 2) {
    // Hangman games get an extra ten seconds for balance.
    timer = timer+10000;
  }

  var infoString = "";
  if(!scheduled) {
    infoString = "\n";
github LakeYS / Discord-Trivia-Bot / triviabot.js View on Github external
Trivia.parseAnswerHangman = function(str, id, userId, username, scoreValue) {
  var input = str.toLowerCase();
  // Decode and remove all non-alphabetical characters
  var answer = entities.decode(game[id].answer).toLowerCase().replace(/\W/g, "");

  // Return -1 if the input is a command.
  // If the input is much longer than the actual answer, assume that it is not an attempt to answer.
  if(input.startsWith(getConfigVal("prefix", id)) || input.length > answer.length*2) {
    return -1;
  }

  if(input.replace(/\W/g, "") === answer) {
    return Trivia.parseAnswer(Letters[game[id].correctId], id, userId, username, scoreValue);
  }
  else {
    // The string doesn't match, so we'll pass the first incorrect answer.
    var incorrect = Letters.slice(0); // Copy to avoid modifying it
    incorrect.splice(game[id].correctId, 1);
    return Trivia.parseAnswer(incorrect[0], id, userId, username, scoreValue);
  }
github LakeYS / Discord-Trivia-Bot / triviabot.js View on Github external
case "hard":
        color = 14164000;
        break;
    }
  }
  game[id].color = color;

  var answerString = "";
  if(gameMode === 2) {
    var answer = entities.decode(correct_answer);

    var obscuredAnswer = createObscuredAnswer(answer);
    answerString = obscuredAnswer;

    if(getConfigVal("debug-mode")) {
      answerString = `${answerString} *(Answer: ${entities.decode(correct_answer)})*`;
    }

    game[id].correctId = 0;
  }
  else {
    // Sort the answers in reverse alphabetical order.
    answers.sort();
    answers.reverse();

    for(var i = 0; i &lt;= answers.length-1; i++) {
      answers[i] = answers[i].toString();

      if(answers[i] === correct_answer) {
        game[id].correctId = i;
      }
github ioBroker / ioBroker.sonos / node_modules / sonos-discovery / lib / player.js View on Github external
function Player(roomName, descriptorUrl, uuid, discovery) {
  var _this = this;
  var positionInfoTimeout;
  //var sids = {};
  var subscriptions = {};
  var xmlEntities = new XmlEntities();
  // for prototype access
  this.discovery = discovery;
  this.address = descriptorUrl.replace(/http:\/\/([\d\.]+).*/, "$1");
  this.roomName = xmlEntities.decode(roomName);
  this.zoneType = 0;
  this.uuid = uuid;
  this.state = {
    currentTrack: {
      artist: "",
      title: "",
      album: "",
      albumArtURI: "",
      duration: 0,
      uri: ""
    },
    nextTrack: {