about summary refs log tree commit diff stats
path: root/src
ModeNameSize
-rw-r--r--achievements_pane.cpp830log stats plain blame
-rw-r--r--achievements_pane.h425log stats plain blame
-rw-r--r--ap_state.cpp16845log stats plain blame
-rw-r--r--ap_state.h1776log stats plain blame
-rw-r--r--area_popup.cpp3323log stats plain blame
-rw-r--r--area_popup.h457log stats plain blame
-rw-r--r--connection_dialog.cpp2686log stats plain blame
-rw-r--r--connection_dialog.h759log stats plain blame
-rw-r--r--game_data.cpp24844log stats plain blame
-rw-r--r--game_data.h2796log stats plain blame
-rw-r--r--global.cpp1193log stats plain blame
-rw-r--r--global.h335log stats plain blame
-rw-r--r--logger.cpp595log stats plain blame
-rw-r--r--logger.h168log stats plain blame
-rw-r--r--main.cpp350log stats plain blame
-rw-r--r--settings_dialog.cpp1181log stats plain blame
-rw-r--r--settings_dialog.h655log stats plain blame
-rw-r--r--tracker_config.cpp2152log stats plain blame
-rw-r--r--tracker_config.h926log stats plain blame
-rw-r--r--tracker_frame.cpp6767log stats plain blame
-rw-r--r--tracker_frame.h909log stats plain blame
-rw-r--r--tracker_panel.cpp7572log stats plain blame
-rw-r--r--tracker_panel.h852log stats plain blame
-rw-r--r--tracker_state.cpp12588log stats plain blame
-rw-r--r--tracker_state.h204log stats plain blame
-rw-r--r--version.h1166log stats plain blame
ont-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#include "configuration.h"
#include <json.hpp>
#include <cassert>
#include "codes.h"

namespace twitter {
  
  configuration::configuration(std::string data) try
  {
    auto json_data = nlohmann::json::parse(data);
    
    _characters_reserved_per_media = json_data["characters_reserved_per_media"].get<size_t>();
    _dm_text_character_limit = json_data["dm_text_character_limit"].get<size_t>();
    _max_media_per_upload = json_data["max_media_per_upload"].get<size_t>();
    _photo_size_limit = json_data["photo_size_limit"].get<size_t>();
    _short_url_length = json_data["short_url_length"].get<size_t>();
    _short_https_url_length = json_data["short_url_length_https"].get<size_t>();
    
    for (auto sizedata = std::begin(json_data["photo_sizes"]); sizedata != std::end(json_data["photo_sizes"]); ++sizedata)
    {
      photosize size;
      size.height = sizedata.value()["h"].get<size_t>();
      size.width = sizedata.value()["w"].get<size_t>();
      if (sizedata.value()["resize"].get<std::string>() == "fit")
      {
        size.resize = resizetype::fit;
      } else {
        size.resize = resizetype::crop;
      }
      
      _photo_sizes[sizedata.key()] = size;
    }
    
    for (auto path : json_data["non_username_paths"])
    {
      _non_username_paths.insert(path.get<std::string>());
    }
  } catch (const std::invalid_argument& error)
  {
    std::throw_with_nested(malformed_object("configuration", data));
  } catch (const std::domain_error& error)
  {
    std::throw_with_nested(malformed_object("configuration", data));
  }

};