• Альтернатива sockets.io в дотнете?

    Поможет ли мне signalr в этом деле?

    Кажется да. Нужно будет просто в signalr хабе передавать подключившимся, какое видео и с какой секунды включать.
    Как я понял из описания - хаб в signalr ~= комната в sockets.io
    Ответ написан
    Комментировать
  • Как вызвать метод на блейзор клиенте?

    Ошибка говорит, что HttpClient в блазоре не поддерживает Proxy
    А в коде вашей либы есть такой код
    public RestClient(Uri baseUrl, JsonSerializer serializer, IWebProxy proxy = null)
            {
                BaseUrl = baseUrl;
                Serializer = serializer;
                DefaultQueryString = new List<KeyValuePair<string, string>>();
    
                MaxRetryCount = 0;
                Proxy = proxy;
    
                HttpClient = new HttpClient(new HttpClientHandler
                {
                    Proxy = proxy // Вот из-за этой строчки происходит падение.
                });
            }


    Есть три варианта решения:
    1. Сделать форк либы и поправить эту строку.
    Но не факт, что это единственная строчка, которая вызывает несовместимые API
    2. Вызывать этот код на сервере, а клиенту передавать только данные.
    3. Написать собственный клиент для imdb
    Ответ написан
    Комментировать
  • С помощью какого фреймворка сделать красивый дизайн?

    Со стороны стилей это сложным не выглядит, кмк - делал подобное без CSS-фреймворков.

    Но судя по интерфейсу - тут много интерактивных динамичных элементов, так что я бы последовал совету Много Чего и сразу взял какой-нибудь js фреймворк для создания SPA.
    Например react, angular, или vue
    Ответ написан
    Комментировать
  • В чем суть SPA?

    Stalker_RED
    @Stalker_RED
    Gmail видел? Там нажимаешь всякие кнопочки, менюшки, письма читаешь, пишешь, отправляешь... но страница при этом не перезагружается. Вся движуха на одной странице.

    Или вот google docs, гуглокарта (да и яндексовая тоже), яндекс.музыка и куча всего другого.
    Ответ написан
    Комментировать
  • Как транслировать видео для нескольких браузеров?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как вариант взять сервис и автоматически в чате создавать ссылку
    https://lifehacker.ru/smotret-youtube-vmeste-s-dru...
    Ответ написан
    5 комментариев
  • Что возвращает out параметр?

    out _ означает, что мы игнорируем то значение, которое возвращается через out-параметр.
    Это называется discard - в 9й версии языка расширили возможность его применения, кстати.

    Возвращается в нём, в этом случае, удалённый элемент.
    Читайте документацию на ConcurrentDictionary.

    Если не понятно про out, то читайте документацию про out.
    Ответ написан
    2 комментария
  • Что возвращает out параметр?

    @Hanneman
    Не буду своими словами объяснять, так как в любом учебнике описано.

    В версии C# 7 переменные можно объявлять на лету при вызове методов с параметрами out:
    int.TryParse ("123", out int x);
    Console.WriteLine (x);

    Этот код эквивалентен следующему коду:
    int x;
    int.TryParse ("123", out x);
    Console.WriteLine (x);

    Когда вызываются методы с множеством параметров out, посредством символа подчеркивания можно “отбрасывать” любые параметры, которые не интересны для кода. Предполагая, что метод SomeBigMethod() был определен с пятью параметрами out, вот как проигнорировать все параметры кроме третьего:
    SomeBigMethod (out _, out _, out int x, out _, out _);
    Console.WriteLine (x);
    Ответ написан
    1 комментарий
  • Как показывать видео с других сервисов на своем сайте?

    Есть два выхода: или подключить видео прямо с сайта извне (как в ютубе или через api), либо скачать все видео, сделать свою панель настройки и подключить локально на сайт. Но первый способ лучше.
    Ответ написан
    Комментировать
  • Как вывести из json только определенные элементы?

    Есть метод Execute<T> в который можно прокинуть нужный тип
    Прокидываете туда что-то типа FilmInfo[] и берёте от результата [0]
    Ответ написан
    5 комментариев
  • Как вывести из json только определенные элементы?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Берёшь свой запрос. Открываешь программу Postman. Отправляешь запрос. Копируешь полученный JSON в буфер обмена. Переходишь на какой-нибудь сайт вроде https://json2csharp.com/ и вставляешь туда JSON. Копируешь полученные классы, правильно именуешь. Параметры генерации классов:
    5fe665235f0a1045486034.png

    Кстати, для поискового запроса (текста) можно попробовать использовать Uri.EscapeUriString

    Подключение быстрого сериализатора System.Text.Json из .NET Core

    RestSharpExample.csproj
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="RestSharp" Version="106.11.7" />
        <PackageReference Include="RestSharp.Serializers.SystemTextJson" Version="106.11.7" />
      </ItemGroup>
    
    </Project>


    Api/Kinopoisk/KinopoiskService.cs
    using System.Threading.Tasks;
    using System.Web;
    using RestSharp;
    using RestSharp.Serializers.SystemTextJson;
    using RestSharpExample.Api.Kinopoisk.Model;
    
    namespace RestSharpExample.Api.Kinopoisk
    {
        public class KinopoiskService
        {
            private const string API = "https://api.kinopoisk.cloud/";
            private const string TOKEN = "7777";
    
            private readonly RestClient _client;
    
            public KinopoiskService()
            {
                _client = new RestClient(API);
                _client.UseSystemTextJson();
            }
    
            public async Task<SearchResult> SearchAsync(string movieTitle)
            {
                var request = new RestRequest($"movies/search/{HttpUtility.UrlEncode(movieTitle)}/token/{TOKEN}", Method.GET);
                var response = await _client.ExecuteAsync<SearchResult>(request);
                return response.Data;
            }
        }
    }


    Program.cs
    using System;
    using System.Linq;
    using System.Threading.Tasks;
    using RestSharpExample.Api.Kinopoisk;
    using RestSharpExample.Api.Kinopoisk.Model;
    
    namespace RestSharpExample
    {
        class Program
        {
            private KinopoiskService _kinopoisk;
    
            #region Entry point
    
            static async Task Main(string[] args)
            {
                var program = new Program();
                await program.Run(args);
            }
    
            #endregion
    
            private async Task Run(string[] args)
            {
                _kinopoisk = new KinopoiskService();
    
                try
                {
                    string searchRequest = "Дурак";
                    SearchResult result = await _kinopoisk.SearchAsync(searchRequest);
                    Console.WriteLine($"Результаты поиска по запросу \"{searchRequest}\":");
                    if (result.Results.Any())
                    {
                        Display(result.Results.First());
                    }
                    else
                    {
                        Console.WriteLine("Ничего не найдено.");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
    
            private void Display(SearchMovieInfo info)
            {
                Console.WriteLine($"ИД: {info.Id}, Название: {info.Title}, Год: {info.Year}");
            }
        }
    }


    Api/Kinopoisk/Model/SearchResult.cs
    using System.Collections.Generic;
    using System.Text.Json.Serialization;
    
    namespace RestSharpExample.Api.Kinopoisk.Model
    {
        public class SearchResult
        {
            [JsonPropertyName("results")]
            public List<SearchMovieInfo> Results { get; set; }
    
            [JsonPropertyName("pagination")]
            public Pagination Pagination { get; set; }
        }
    }


    Api/Kinopoisk/Model/SearchMovieInfo.cs
    using System.Text.Json.Serialization;
    
    namespace RestSharpExample.Api.Kinopoisk.Model
    {
        public class SearchMovieInfo
        {
            [JsonPropertyName("id")]
            public string Id { get; set; }
    
            [JsonPropertyName("id_kinopoisk")]
            public int IdKinopoisk { get; set; }
    
            [JsonPropertyName("title")]
            public string Title { get; set; }
    
            [JsonPropertyName("description")]
            public string Description { get; set; }
    
            [JsonPropertyName("year")]
            public int Year { get; set; }
    
            [JsonPropertyName("poster")]
            public string Poster { get; set; }
    
            [JsonPropertyName("rating_kinopoisk")]
            public double? RatingKinopoisk { get; set; }
    
            [JsonPropertyName("rating_imdb")]
            public double? RatingImdb { get; set; }
        }


    Api/Kinopoisk/Model/Pagination.cs
    using System.Text.Json.Serialization;
    
    namespace RestSharpExample.Api.Kinopoisk.Model
    {
        public class Pagination
        {
            [JsonPropertyName("current_page")]
            public string CurrentPage { get; set; }
    
            [JsonPropertyName("end_page")]
            public string EndPage { get; set; }
    
            [JsonPropertyName("total_pages")]
            public int TotalPages { get; set; }
        }
    }
    Ответ написан
    Комментировать
  • Как воспроизводить фильмы на сайте?

    vabka
    @vabka Куратор тега Веб-разработка
    Можно конечно арендовать сервер, на который загрузить пиратские фильмы, но этот вариант мне не нравится.


    Popcorn time работает на торрентах. Торрент-клиент в контексте браузера реализовать невозможно (пока), так что придётся либо свой сервер поднимать, либо пиратить видео с других пиратских сайтов :)
    Ответ написан
    Комментировать
  • Как устроиться на работу в другой стране?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Самолет, поезд, автомобиль, автобус, пешком. С таким багажом знаний вы никому за границей не нужны - нанимают с переездом людей только с высокой квалификацией, а для переезда в ряд стран так вообще требуется не просто диплом, а вполне определенный диплом (читать в правилах получении визы)
    Ответ написан
    2 комментария
  • Как устроиться на работу в другой стране?

    @kovdimaleks
    Устроиться на работу в другой стране можно разными способами и это зависит от конкретной страны.
    Но в общем, это зависит от двух вещей - имеется ли Вы возможность там ПОСТОЯННО проживать или нет.
    Если имеете - ок, идете работать джуном, вероятно у Вас есть гражданство или вид на жительство.
    Если не имеете такой возможности, в таком случае работодатель должен быть заинтересован в Вас настолько, чтобы звать из другой страны к себе, оформляя при это рабочую визу, и много других документов и ожидая кучу времени.

    Думаю что Вас интересует именно последний вариант. Для этого необходимо получить релевантный опыт, поднять свою квалификацию до уровня минимум - крепкого middle, а более реально - уровня Senior.
    Иностранный язык той страны, куда Вы хотите, должен быть на разговорном уровне.
    Технологии, на которых Вы работаете должны быть востребованы в этой стране.

    Все, этого достаточно. Начиная с "полного" нуля, т.е. отсутствия языка и каких либо навыком все можно
    получить за 3-5 лет при постоянном упорном труде и изучении и практике иностранного языка. Если ленится и валять на работе дурака срок - до бесконечности.
    Ответ написан
    Комментировать