public IMediaWikiConfiguration GetConfigurationForChannel(string channel)
        {
            lock (this.cache)
            {
                if (this.cache.ContainsKey(channel))
                {
                    return(this.cache[channel]);
                }

                var config = new MediaWikiConfiguration(this.channelMatch.Replace(channel, this.urlReplacement),
                                                        this.userAgent, this.username, this.password);

                this.cache.Add(channel, config);

                return(config);
            }
        }
        public WikimediaUrlShorteningService(
            ILogger logger,
            IShortUrlCacheService shortUrlCacheService,
            IMediaWikiApiTypedFactory apiTypedFactory,
            BotConfiguration configuration,
            IUrlShorteningService secondaryShortener,
            WikimediaUrlShortnerConfiguration shortenerConfiguration)
            : base(logger, shortUrlCacheService)
        {
            this.logger             = logger;
            this.apiTypedFactory    = apiTypedFactory;
            this.secondaryShortener = (UrlShorteningServiceBase)secondaryShortener;
            this.allowedDomains     = shortenerConfiguration.AllowedDomains.Select(x => new Regex(x)).ToList();

            this.mediaWikiConfig = new MediaWikiConfiguration(
                shortenerConfiguration.MediaWikiApiEndpoint,
                configuration.UserAgent,
                shortenerConfiguration.MediaWikiApiUsername,
                shortenerConfiguration.MediaWikiApiPassword);
        }
Esempio n. 3
0
        public IMediaWikiApi GetApi(string apiUrl, string username, string password)
        {
            var mwConfig = new MediaWikiConfiguration(apiUrl, this.config.UserAgent, username, password);

            return(this.factory.Create <IMediaWikiApi>(mwConfig));
        }
Esempio n. 4
0
        public IMediaWikiApi GetApi(MediaWikiSite site)
        {
            var mwConfig = new MediaWikiConfiguration(site.Api, this.config.UserAgent, site.Username, site.Password);

            return(this.factory.Create <IMediaWikiApi>(mwConfig));
        }
 public MapEntry(string channel, MediaWikiConfiguration configuration)
 {
     this.Channel       = channel;
     this.Configuration = configuration;
 }