<commit_before>"use strict";

var Affiliation = {
  debug: 0,

  // IMPORTANT: Keep the same order of affiliations here as in options.html

  // Explanation of organization attributes:

  // name: 'Organization X',
  // key: 'orgx',
  // web: 'https://orgx.com',
  // feed: 'https://orgx.com/feed',             // ALTERNATIVE: Use either 'feed' or 'getNews', not both
  // logo: './org/orgx/logo.png',               // 512x128 transparent white logo, for dark backgrounds
  // icon: './org/orgx/icon.png',               //  76x76  transparent icon, for extension icon
  // symbol: './org/orgx/symbol.png',           // 256x256 transparent symbol, big version of the icon with ~20% empty padding
  // placeholder: './org/orgx/placeholder.png', // 512x256 placeholder, used when news images is loading, standard was previously 512x384
  // sponsor: './org/orgx/sponsor.png',         // 512x128 sponsor logo, replaces the affiliation logo in the corner of the infoscreen
  // palette: 'orgx',                           // The color palette to use, if special palette exists use orgx-key
  // palettePath: './org/orgx/palette.css',     // OPTIONAL: Path to the special palette
  // useAltLink: true,                          // OPTIONAL: Search each news post for alternative link to use?
  // hw: {                                      // OPTIONAL: Has hardwarefeatures?
  //   office: "orgxkontoret",                  // OPTIONAL: Friendly name for the affiliation office
  //   apis: {
  //     coffee: 'http://orgx.no/coffee',       // Coffee data
  //     light: 'http://orgx.no/lys',           // Light data
  //     servant: 'http://orgx.no/servant',     // Todays servant list
  //     meetings: 'http://orgx.no/meetings',   // Todays meetings
  //   },
  //   statusIcons: {
  //     open: './org/orgx/icon.png',
  //     closed: './org/orgx/icon.png',
  //     meeting: './org/orgx/icon.png',
  //   },
  //   statusMessages: {                        // OPTIONAL: separate statusmessages for this affiliation's office
  //     open: 'Velkommen inn!',
  //     closed: 'Få tilgang av kontorsjef',
  //     meeting: 'Kontoret er helt opptatt!',
  //   },
  //   memePath: './org/orgx/meme/',            // OPTIONAL: pictures in /orgx/meme/ with the format 1...N.jpg
  // },
  // irc: {                                     // OPTIONAL: add IRC button to the popup
  //   server: 'irc.freenode.net',
  //   channel: '#orgx',
  // }
  // getImages: function(links, callback) {},   // OPTIONAL: fetch all news images with one scrape, prefer this to 'getImage'
  // getImage: function(link, callback) {},     // OPTIONAL: fetch news images for articles separately
  // getNews: function(limit, callback) {},     // OPTIONAL: getNews may override standard RSS/Atom fetching, use either 'feed' or 'getNews', not both

  // Other notes:
  // - Image dimensions should be in the power of two in case we decide to use WebGL one day.

  org: {

    // DEBUG (separate affiliation that fetches data from Notipis / Notiwire in DEBUG mode)

    'DEBUG': {
      name: 'DEBUG',
      key: 'DEBUG',
      web: 'http://example.com/',
      feed: 'http://dusken.no/feed/',
      logo: './org/DEBUG/logo.png',
      icon: './org/DEBUG/icon.png',
      symbol: './org/DEBUG/symbol.png',
      placeholder: './org/DEBUG/placeholder.png',
      palette: 'grey',
      hw: {
        office: 'DEBUG-kontoret',
        apis: {
          coffee: true,
          light: true,
          servant: 'informatikk.org_r25vb0o7ounepq40tc4pcieh84%40group.calendar.google.com',
          meetings: 'informatikk.org_r25vb0o7ounepq40tc4pcieh84%40group.calendar.google.com'
        },
        statusIcons: {
          open: './org/DEBUG/icon-open.png',
          closed: './org/DEBUG/icon-closed.png',
          meeting: './org/DEBUG/icon-meeting.png',
        },
      },
      getImage: function(link, callback) {
        Images.get(this, link, callback, {newsSelector:'div.col-xs-12', domainUrl:'dusken.no'});
      },
    },

    // <NAME>

    'abakus': {
      name: 'Abakus',
      key: 'abakus',
      web: 'http://abakus.no/',
      // feed not available, use getNews instead
      logo: './org/abakus/logo.png',
      icon: './org/abakus/icon.png',
      symbol: './org/abakus/symbol.png',
      placeholder: './org/abakus/placeholder.png',
      palette: 'red',
      hw: {
        office: "Abakuskontoret",
        apis: {
          coffee: 'https://kaffe.abakus.no/coffee.txt',
          light: 'http://informatikk.org/abakus/lys.txt',
          servant: null, // TODO
          meetings: '3ms24h7vpud4clrtt2grtadgm0%40group.calendar.google.com',
        },
        statusIcons: {
          // TODO: update when Abakus gets office status feature
          open: './org/abakus/icon.png', //'./org/abakus/icon-open.png',
          closed: './org/abakus/icon.png', //'./org/abakus/icon-closed.png',
          meeting: './org/abakus/icon.png', //'./org/abakus/icon-meeting.png',
        },
        memePath: './org/abakus/meme/',
      },
      irc: {
        server: 'irc.efnet.org',
        channel: '#abakus',
      },
      // getImages unnecessary, images are extracted from the source code
      getNews: function(posts, callback) {
        if (typeof callback == 'undefined') {
          console.log('ERROR: callback is required');
          return;
        }<commit_msg>Remove legacy coffee for Abakus<commit_after>"use strict";

var Affiliation = {
  debug: 0,

  // IMPORTANT: Keep the same order of affiliations here as in options.html

  // Explanation of organization attributes:

  // name: 'Organization X',
  // key: 'orgx',
  // web: 'https://orgx.com',
  // feed: 'https://orgx.com/feed',             // ALTERNATIVE: Use either 'feed' or 'getNews', not both
  // logo: './org/orgx/logo.png',               // 512x128 transparent white logo, for dark backgrounds
  // icon: './org/orgx/icon.png',               //  76x76  transparent icon, for extension icon
  // symbol: './org/orgx/symbol.png',           // 256x256 transparent symbol, big version of the icon with ~20% empty padding
  // placeholder: './org/orgx/placeholder.png', // 512x256 placeholder, used when news images is loading, standard was previously 512x384
  // sponsor: './org/orgx/sponsor.png',         // 512x128 sponsor logo, replaces the affiliation logo in the corner of the infoscreen
  // palette: 'orgx',                           // The color palette to use, if special palette exists use orgx-key
  // palettePath: './org/orgx/palette.css',     // OPTIONAL: Path to the special palette
  // useAltLink: true,                          // OPTIONAL: Search each news post for alternative link to use?
  // hw: {                                      // OPTIONAL: Has hardwarefeatures?
  //   office: "orgxkontoret",                  // OPTIONAL: Friendly name for the affiliation office
  //   apis: {
  //     coffee: 'http://orgx.no/coffee',       // Coffee data
  //     light: 'http://orgx.no/lys',           // Light data
  //     servant: 'http://orgx.no/servant',     // Todays servant list
  //     meetings: 'http://orgx.no/meetings',   // Todays meetings
  //   },
  //   statusIcons: {
  //     open: './org/orgx/icon.png',
  //     closed: './org/orgx/icon.png',
  //     meeting: './org/orgx/icon.png',
  //   },
  //   statusMessages: {                        // OPTIONAL: separate statusmessages for this affiliation's office
  //     open: 'Velkommen inn!',
  //     closed: 'Få tilgang av kontorsjef',
  //     meeting: 'Kontoret er helt opptatt!',
  //   },
  //   memePath: './org/orgx/meme/',            // OPTIONAL: pictures in /orgx/meme/ with the format 1...N.jpg
  // },
  // irc: {                                     // OPTIONAL: add IRC button to the popup
  //   server: 'irc.freenode.net',
  //   channel: '#orgx',
  // }
  // getImages: function(links, callback) {},   // OPTIONAL: fetch all news images with one scrape, prefer this to 'getImage'
  // getImage: function(link, callback) {},     // OPTIONAL: fetch news images for articles separately
  // getNews: function(limit, callback) {},     // OPTIONAL: getNews may override standard RSS/Atom fetching, use either 'feed' or 'getNews', not both

  // Other notes:
  // - Image dimensions should be in the power of two in case we decide to use WebGL one day.

  org: {

    // DEBUG (separate affiliation that fetches data from Notipis / Notiwire in DEBUG mode)

    'DEBUG': {
      name: 'DEBUG',
      key: 'DEBUG',
      web: 'http://example.com/',
      feed: 'http://dusken.no/feed/',
      logo: './org/DEBUG/logo.png',
      icon: './org/DEBUG/icon.png',
      symbol: './org/DEBUG/symbol.png',
      placeholder: './org/DEBUG/placeholder.png',
      palette: 'grey',
      hw: {
        office: 'DEBUG-kontoret',
        apis: {
          coffee: true,
          light: true,
          servant: 'informatikk.org_r25vb0o7ounepq40tc4pcieh84%40group.calendar.google.com',
          meetings: 'informatikk.org_r25vb0o7ounepq40tc4pcieh84%40group.calendar.google.com'
        },
        statusIcons: {
          open: './org/DEBUG/icon-open.png',
          closed: './org/DEBUG/icon-closed.png',
          meeting: './org/DEBUG/icon-meeting.png',
        },
      },
      getImage: function(link, callback) {
        Images.get(this, link, callback, {newsSelector:'div.col-xs-12', domainUrl:'dusken.no'});
      },
    },

    // <NAME>

    'abakus': {
      name: 'Abakus',
      key: 'abakus',
      web: 'http://abakus.no/',
      // feed not available, use getNews instead
      logo: './org/abakus/logo.png',
      icon: './org/abakus/icon.png',
      symbol: './org/abakus/symbol.png',
      placeholder: './org/abakus/placeholder.png',
      palette: 'red',
      hw: {
        office: "Abakuskontoret",
        apis: {
          servant: null, // TODO
          meetings: '3ms24h7vpud4clrtt2grtadgm0%40group.calendar.google.com',
        },
        statusIcons: {
          // TODO: update when Abakus gets office status feature
          open: './org/abakus/icon.png', //'./org/abakus/icon-open.png',
          closed: './org/abakus/icon.png', //'./org/abakus/icon-closed.png',
          meeting: './org/abakus/icon.png', //'./org/abakus/icon-meeting.png',
        },
        memePath: './org/abakus/meme/',
      },
      irc: {
        server: 'irc.efnet.org',
        channel: '#abakus',
      },
      // getImages unnecessary, images are extracted from the source code
      getNews: function(posts, callback) {
        if (typeof callback == 'undefined') {
          console.log('ERROR: callback is required');
          return;
        }
{'fraction_non_alphanumeric': 0.152526395173454, 'fraction_numerical': 0.013386123680241327, 'mean_word_length': 1.9428571428571428, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2714787', 'n_tokens_mistral': 3486, 'n_tokens_neox': 3332, 'n_words': 832}