public SendReportCommand(IAntiplagiatService antiplagiatService, IVkApi vkApi, MireaAntiplagiatDataContext context)
 {
     this.vkApi              = vkApi;
     this.context            = context;
     this.antiplagiatService = antiplagiatService;
     antiplagiatService.OnDocumentChecked += AntiplagiatService_OnDocumentChecked;
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IBrowser, Authorization>();
            serviceCollection.AddSingleton <IRestClient, RestClientEx>();
            serviceCollection.AddSingleton <IReceiptParser, ReceiptParser>();
            _api = new VkApi(serviceCollection);

            _api.Authorize(new ApiAuthParams
            {
                Login    = "******",
                Password = "******"
            });

            var audios = _api.Audio.Get(out var user, new AudioGetParams {
                Count = 10
            });

            foreach (var audio in audios)
            {
                Console.WriteLine($" > {audio.Artist} - {audio.Title}");
            }

            Console.ReadLine();
        }
Beispiel #3
0
 public MessageController(IVkApi vkApi)
 {
     _vkApi       = vkApi;
     _controller  = new VkBotController();
     _anekManager = new AnekManager(_controller);
     _sender      = new MessageSender(_vkApi);
 }
        public messageObjectHandlers(IVkApi _vkApi, string Object)
        {
            this._vkApi = _vkApi;
            Dictionary <string, object> messageObject = JsonSerializer.Deserialize <Dictionary <string, object> >(Object);

            if (queues == null)
            {
                queues = new Dictionary <string, Queue>();
            }

            if (!messageObject.ContainsKey("message"))
            {
                return;
            }

            Dictionary <string, object> message = JsonSerializer.Deserialize <Dictionary <string, object> >(messageObject["message"].ToString());

            if (!message.ContainsKey("text"))
            {
                return;
            }
            if (!message.ContainsKey("peer_id"))
            {
                return;
            }
            string messageText = message["text"].ToString();

            if (!messageText.StartsWith("[club203355401|"))
            {
                return;
            }
            messageText = messageText.Substring(messageText.IndexOf(']') + 1);

            if (messageText.Contains("старт") && message.ContainsKey("from_id") && message["from_id"].ToString() == "194465804")
            {
                messageText = StartQueue(messageText);
            }
            else if (messageText.Contains("стоп") && message.ContainsKey("from_id") && message["from_id"].ToString() == "194465804")
            {
                messageText = StopQueue(messageText);
            }
            else if (messageText.Contains("запись"))
            {
                messageText = AddQueue(messageText, (message.ContainsKey("from_id")) ? message["from_id"].ToString()  : "");
            }
            else if (messageText.Contains("отписаться"))
            {
                messageText = RemoveQueue(messageText, (message.ContainsKey("from_id")) ? message["from_id"].ToString()  : "");
            }
            else if (messageText.Contains("очередь"))
            {
                messageText = StatusQueue(messageText);
            }
            else
            {
                messageText = "Чего хотел?";
            }

            SendMessage(long.Parse(message["peer_id"].ToString()), messageText);
        }
        public void SetUp()
        {
            _api  = Mock.Of <IVkApi>();
            _wall = Mock.Of <IWallCategory>();
            Mock.Get(_api)
            .Setup(x => x.Wall)
            .Returns(() => _wall);
            Mock.Get(_wall)
            .Setup(x => x.Post(It.IsAny <WallPostParams>()))
            .Returns(() => PostId);
            var posts = new List <Post>
            {
                CreateSomePost(),
                CreateSomePost(),
                CreateSomePost(),
                CreateSomePost(),
                CreateSomePost()
            };

            Mock.Get(_wall)
            .Setup(x => x.Get(It.IsAny <WallGetParams>(), It.IsAny <bool>()))
            .Returns(() => new WallGetObject {
                WallPosts = new ReadOnlyCollection <Post>(posts)
            });
            CreateSomePost();
            _log = Mock.Of <ILog>();
            _sut = new LetterStatsReporter(_api, _log);
        }
Beispiel #6
0
        public async Task <ActionResult> Generate(DrawingRequest request, IVkApi vkApi)
        {
            var notparseIds = request.Post.Split(new [] { "wall" }, StringSplitOptions.None)[1];
            var ids         = notparseIds.Split('_');
            int ownerid;
            int postid;

            if (!int.TryParse(ids[0], out ownerid))
            {
                return(BadRequest());
            }
            if (!int.TryParse(ids[1], out postid))
            {
                return(BadRequest());
            }

            var reposts = await vkApi.GetReposts(ownerid, postid);

            var peoples = new List <string>();

            for (int i = 0; i < request.Count; i++)
            {
            }
            return(View());
        }
Beispiel #7
0
 public CommandHandler(MainContext db, IVkApi vkApi, CommandExecutor commandExecutor, RolesHandler checker)
 {
     _db              = db;
     _vkApi           = vkApi;
     _commandExecutor = commandExecutor;
     _checker         = checker;
 }
Beispiel #8
0
        public Result TryAuthorize(IVkApi vkApi, string login, string password)
        {
            try
            {
                if (!vkApi.IsAuthorized)
                {
                    if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
                    {
                        return(Result.Error(
                                   "Пользователь не авторизован, пожалуйста, вызовите команду с соответствующими параметрам (логином и паролем)"));
                    }

                    vkApi.Authorize(new ApiAuthParams
                    {
                        ApplicationId          = 6952669,
                        Login                  = login,
                        Password               = password,
                        Settings               = Settings.Wall | Settings.Groups,
                        TwoFactorAuthorization = twoFactorAuthorization
                    });
                }
            }
            catch (VkApiException e)
            {
                log.Error("User cannot be authorized.", e);
                return(Result.Error("Не удалось авторизоваться, возможно введен неверный логин или пароль."));
            }

            return(Result.Success());
        }
Beispiel #9
0
 public void GetAuth(string login = null, string password = null)
 {
     vkDatas.service = new ServiceCollection();
     vkDatas.service.AddAudioBypass();
     api = new VkApi(vkDatas.service);
     if (Token != null)
     {
         AuthToken();
     }
     else
     {
         try
         {
             Auth2Fact(login, password);
             if (!api.IsAuthorized)
             {
                 AuthLogPass(login, password);
             }
         }
         catch
         {
             MessageBox.Show("Неверный логин или пароль", "Ошибка", MessageBoxButtons.OK);
         }
     }
     rnd    = new Random();
     isAuth = true;
 }
Beispiel #10
0
        public async Task Logout()
        {
            _api = new VkApi();
            await _tokenStorage.WriteToken <VkontakteFileSystemProvider>(null);

            _isAuthorized.OnNext(_api.IsAuthorized);
        }
Beispiel #11
0
        private async Task RunAsync()
        {
            _api = await VkLogin.SimpleLoginAndGetApi(_app, _login, _pas, VkScope.Friends);

            var resolver = new Antigate(_antigate);
            var items    = new List <GroupFriendsFileLine>(File.ReadAllLines(_in).Select(_ => new GroupFriendsFileLine(_)));
            var current  = 0;

            foreach (var item in items.Where(_ => _.State == State.Wait))
            {
                try
                {
                    var res = await _api.Friends.Add(resolver, item.UserId, _message);

                    switch (res)
                    {
                    case VkAddFriendsResultEnum.SuccessRequest:
                        item.State = State.SuccessRequest;
                        current++;
                        break;

                    case VkAddFriendsResultEnum.SucessAdd:
                        item.State = State.SuccessAdd;
                        current++;
                        break;

                    case VkAddFriendsResultEnum.AlreadyRequest:
                        item.State = State.AlreadyExist;
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                catch (Exception ex)
                {
                    Logger.ErrorException("add friend exception", ex);
                    item.Comment = ex.Message.Replace('\n', ' ').Replace('|', ' ');
                    item.State   = State.Error;
                }
                item.Comment += " Complete:" + DateTime.Now.ToLongDateString();
                if (current >= _count)
                {
                    break;
                }
            }


            if (File.Exists(_out))
            {
                File.Delete(_out);
            }
            using (var outFile = new StreamWriter(File.OpenWrite(_out)))
            {
                foreach (var item in items)
                {
                    outFile.WriteLine(item.Serialize());
                }
            }
        }
Beispiel #12
0
 /// <summary>
 /// Инициализирует новый экземпляр класса <see cref="MenuBase"/>. Для его создания в контейнере зависимостей необходимо зарегистрировать <see cref="IVkApi"/> и <see cref="ICommandManager"/>.
 /// </summary>
 /// <param name="peerId">Идентификатор чата, в котором работает меню.</param>
 /// <param name="vkApi">API-ВКонтакте</param>
 protected MenuBase(long peerId, IVkApi vkApi)
 {
     PeerId   = peerId;
     _vkApi   = vkApi;
     MenuText = string.Join('\n',
                            CommonHelper.ExtractMethodsWithAttribute <CommandMenuItemAttribute>(GetType()).Select(p => p.Key.DisplayText));
 }
Beispiel #13
0
 public CallbackController(IVkApi _vkApi, IConfiguration configuration)
 {
     this.configuration = configuration;
     vkApi           = _vkApi;
     tasker          = new Tasker(vkApi);
     Tasker.allUsers = Tasker.OpenAll(); //Открывем файл с данными пользователей.
 }
Beispiel #14
0
        public async Task StartWatchAsync(IVkApi api, WallWatchModel model)
        {
            if (!IsActive)
            {
                IsActive = true;
                _api     = api;
                _model   = model;

                _logger?.LogTrace($"Starting wall watcher for {ApiTargetDescriptor()}");

                _longCheckPeriod  = _model.MonitoringPeriod;
                _shortCheckPeriod = _model.ShortMonitoringPeriod;

                // Do maximum coverage check first
                await ProcessWallWatch(TypesOfChecking.Long);

                _nextLongCheck  = DateTime.UtcNow + model.MonitoringPeriod;
                _nextShortCheck = DateTime.UtcNow + model.ShortMonitoringPeriod;

                if (IsActive)
                {
                    _wallWatchTimer = new Timer(WatchStepAsync, null,
                                                dueTime: Convert.ToInt32(_model.ShortMonitoringPeriod.TotalMilliseconds),
                                                period: Timeout.Infinite);
                }
            }
            else
            {
                _logger?.Log(LogLevel.Trace, $"Attemption to start active watcher for {ApiTargetDescriptor()}.");
            }
        }
Beispiel #15
0
        public async Task <VkNewsfeedResult> ExtractAsync(ILogger logger, IVkApi api, ProviderSettings providerSettings, State state, EndpointOptions endpointOptions, CancellationToken cancellationToken)
        {
            VkNewsFeedGetResponse apiResult;
            string startFrom         = null;
            var    extractedProfiles = new List <Profile>();
            var    extractedItems    = new List <ResponseItem>();

            do
            {
                apiResult = await GetVkFeedAsync(api, providerSettings.AccessToken, startFrom, cancellationToken);

                logger.LogDebug($"{nameof(GetVkFeedAsync)} result: {apiResult.Response.Items.Count} items, NextFrom = {apiResult.Response.NextFrom}");
                startFrom = apiResult.Response.NextFrom;
                extractedProfiles.AddRange(apiResult.Response.Profiles);
                extractedItems.AddRange(apiResult.Response.Items);
            } while (!string.IsNullOrWhiteSpace(startFrom) &&
                     (state.LastRecordCreatedUtc == null || apiResult.AreAllItemsNewerThan(state.LastRecordCreatedUtc.Value)) &&
                     (endpointOptions.MaxDaysFromNow == null || endpointOptions.MaxDaysFromNow == 0 || apiResult.AreAllItemsNewerThan(DateTime.UtcNow.AddDays(endpointOptions.MaxDaysFromNow.Value * -1))));

            return(new VkNewsfeedResult()
            {
                Profiles = extractedProfiles,
                ResponseItems = extractedItems.OrderBy(ri => ri.Date).ToList()
            });
        }
Beispiel #16
0
 public Task Logout()
 {
     _api             = new VkApi();
     Parameters.Token = null;
     _isAuthorized.OnNext(_api.IsAuthorized);
     return(Task.CompletedTask);
 }
Beispiel #17
0
        public VkProvider(ILogger <VkProvider> logger,
                          ILogger <VkLongPoll> pollLogger,
                          ILogger <VkApi> apiLogger,
                          IOptions <VkConfiguration> configuration)
        {
            _accessToken = configuration.Value.AccessToken;
            _groupId     = configuration.Value.GroupId;
            Logger       = logger;

            InboundClient = new VkApi(apiLogger);
            ApiClient     = new VkApi(apiLogger);

            _setApiVersion(5, 120);
            _authorize(new ApiAuthParams
            {
                AccessToken = _accessToken
            });

            VkPoller = new VkLongPoll(InboundClient, _groupId, pollLogger);


            DisplayNameCache = new LRUCache <long, string>(1000, 6);

            VkPoller.OnMessageReceived += _onMessage;
        }
Beispiel #18
0
        private async Task RunAsync()
        {
            var groups = File.ReadAllLines(_in);

            _api = await VkLogin.SimpleLoginAndGetApi(_app, _login, _pas, VkScope.Friends);

            var items = new List <GroupFriendsFileLine>();

            foreach (var gr in groups)
            {
                var arr = await GetFriends(gr);

                items.AddRange(arr);
                //может вызываться слишком быстро
                Thread.Sleep(500);
            }

            if (File.Exists(_out))
            {
                File.Delete(_out);
            }

            using (var outFile = new StreamWriter(File.OpenWrite(_out)))
            {
                foreach (var item in items)
                {
                    outFile.WriteLine(item.Serialize());
                }
            }
        }
Beispiel #19
0
        private static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddAudioBypass();

            _api = new VkApi(serviceCollection);

            _api.Authorize(new ApiAuthParams
            {
                Login    = "******",
                Password = "******",
                TwoFactorAuthorization = () =>
                {
                    Console.WriteLine(" > Введите код:");
                    return(Console.ReadLine());
                }
            });

            var audios = _api.Audio.Get(new AudioGetParams {
                Count = 10
            });

            foreach (var audio in audios)
            {
                Console.WriteLine($" > {audio.Artist} - {audio.Title}");
            }

            Console.ReadLine();
        }
 public CallbackController(IVkApi vkApi, IConfiguration configuration, MainContext db, MessageExecutor executor)
 {
     _vkApi         = vkApi;
     _configuration = configuration;
     _db            = db;
     _executor      = executor;
 }
Beispiel #21
0
 public VkStatTwitNotifier(IVkAuthorizer vkAuthorizer, IVkApi vkApi, ITwitStatCollector twitStatCollector, ILog log)
 {
     this.vkAuthorizer      = vkAuthorizer;
     this.vkApi             = vkApi;
     this.twitStatCollector = twitStatCollector;
     this.log = log;
 }
Beispiel #22
0
        public override bool Execute(GroupUpdate update, IVkApi bot)
        {
            if (update.Type == GroupUpdateType.MessageNew &&
                update.MessageNew != null &&
                update.MessageNew.Message != null &&
                update.MessageNew.Message.Attachments.Any())
            {
                var attachment = update.MessageNew.Message.Attachments.First();
                if (attachment.Type == typeof(Document))
                {
                    var document = attachment.Instance as Document;

                    using (var client = new WebClient())
                    {
                        string salt = Guid.NewGuid().ToString().Substring(0, 8);
                        string path = Path.Combine(Folders.Docs(), $"{update.MessageNew.Message.FromId} {salt} Check.{document.Ext}");
                        client.DownloadFile(document.Uri, path);
                        update.ReplyMessageNew(bot, AppData.Strings.DocumentSaved);
                        context.PathUserId.Add(path, (long)update.MessageNew.Message.FromId);
                        antiplagiatService.EnqueueDocument(path);
                    }
                    return(true);
                }
            }
            return(false);
        }
Beispiel #23
0
 public VkUtils(IVkApi vkApi)
 {
     _api              = vkApi;
     _logger           = LogManager.GetCurrentClassLogger();
     _supportedVkTypes = new List <VkObjectType> {
         VkObjectType.Group, VkObjectType.User
     };
 }
 public VkEventHandler(IVkApi vkApi,
                       WordAndAnswerRepository wordAndAnswerRepository,
                       QuestionAndAnswerRepository questionAndAnswerRepository)
 {
     this.vkApi = vkApi;
     this.wordAndAnswerRepository     = wordAndAnswerRepository;
     this.questionAndAnswerRepository = questionAndAnswerRepository;
 }
Beispiel #25
0
 public override string Do(IVkApi vkApi, Message message)
 {
     if (message.PeerId == 302383860)
     {
         return(message.Text.Replace("Кирилл", "Артур", true, null));
     }
     return($"Да. {message.Text}");
 }
Beispiel #26
0
    public StartupTasks(BotDbContext db, IOptions <MailingOptions> options, IVkApi api)
    {
        _db      = db;
        _api     = api;
        _options = options.Value;

        InitJobsFromDatabase();
    }
Beispiel #27
0
 public ScheduleShowCommands(IVkApi api, IEventRepository eventRepository, IRegularScheduleRepository scheduleRepository,
                             IScheduleFormatService formatService)
 {
     _api                = api;
     _eventRepository    = eventRepository;
     _scheduleRepository = scheduleRepository;
     _formatService      = formatService;
 }
Beispiel #28
0
 /// <inheritdoc />
 public TClient CreateVkApi(IVkApi vkApi)
 {
     if (vkApi == null)
     {
         throw new ArgumentNullException(nameof(vkApi));
     }
     return((TClient)_cache.Activator(_services, new object[] { vkApi }));
 }
Beispiel #29
0
 public BotController(ILogger <BotController> logger, IConfiguration configuration, MessageProcessing messageProcessing, IVkApi vkApi)
 {
     Log            = logger;
     Config         = configuration;
     CommandBinding = messageProcessing;
     Vk             = vkApi;
     Log.LogInformation("Services Inited");
 }
Beispiel #30
0
 public Calculator(IVkApi api)
 {
     _client = new HttpClient
     {
         BaseAddress = new Uri("https://newton.now.sh/simplify/")
     };
     _vkApi = api;
 }