Merge branch 'master' of github.com:ewhal/nyaa into api_wip
Cette révision appartient à :
révision
dffe6b1e33
7 fichiers modifiés avec 1034 ajouts et 6 suppressions
1
main.go
1
main.go
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
|
||||
"github.com/nicksnyder/go-i18n/i18n"
|
||||
|
||||
"github.com/ewhal/nyaa/config"
|
||||
|
|
|
@ -66,6 +66,12 @@ a {
|
|||
.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover {
|
||||
background: #263238;
|
||||
}
|
||||
|
||||
/* Profile Content */
|
||||
.profile-content {
|
||||
background: #29363d;
|
||||
}
|
||||
|
||||
/* Night mode switcher */
|
||||
#mainmenu a.nightswitch {
|
||||
background-image: url(/img/moon.png);
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
func RssHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
_, torrents, _, err := search.SearchByQuery(r, 1)
|
||||
_, torrents, err := search.SearchByQueryNoCount(r, 1)
|
||||
if err != nil {
|
||||
util.SendError(w, err, 400)
|
||||
return
|
||||
|
|
|
@ -67,7 +67,17 @@ func GetTorrentById(id string) (model.Torrents, error) {
|
|||
return torrent, nil
|
||||
}
|
||||
|
||||
func GetTorrentsOrderByNoCount(parameters *WhereParams, orderBy string, limit int, offset int) (torrents []model.Torrents, err error) {
|
||||
torrents, _, err = getTorrentsOrderBy(parameters, orderBy, limit, offset, false)
|
||||
return
|
||||
}
|
||||
|
||||
func GetTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offset int) (torrents []model.Torrents, count int, err error) {
|
||||
torrents, count, err = getTorrentsOrderBy(parameters, orderBy, limit, offset, true)
|
||||
return
|
||||
}
|
||||
|
||||
func getTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offset int, countAll bool) (torrents []model.Torrents, count int, err error) {
|
||||
var conditionArray []string
|
||||
if strings.HasPrefix(orderBy, "filesize") {
|
||||
// torrents w/ NULL filesize fuck up the sorting on postgres
|
||||
|
@ -81,11 +91,12 @@ func GetTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offs
|
|||
params = parameters.Params
|
||||
}
|
||||
conditions := strings.Join(conditionArray, " AND ")
|
||||
err = db.ORM.Model(&torrents).Where(conditions, params...).Count(&count).Error
|
||||
if err != nil {
|
||||
return
|
||||
if countAll {
|
||||
err = db.ORM.Model(&torrents).Where(conditions, params...).Count(&count).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Vulnerable to injections. Use query builder.
|
||||
|
||||
// build custom db query for performance reasons
|
||||
|
|
498
translations/ko-kr.all.json
Fichier normal
498
translations/ko-kr.all.json
Fichier normal
|
@ -0,0 +1,498 @@
|
|||
[
|
||||
{
|
||||
"id": "link",
|
||||
"translation": "링크"
|
||||
},
|
||||
{
|
||||
"id": "verify_email_title",
|
||||
"translation": "고양이를 위해 이메일을 확인해주세요"
|
||||
},
|
||||
{
|
||||
"id": "verify_email_content",
|
||||
"translation": "아래의 버튼을 눌러 이메일을 확인해주세요"
|
||||
},
|
||||
{
|
||||
"id": "reset_password_title",
|
||||
"translation": "고양이를 위해 암호를 리셋해주세요"
|
||||
},
|
||||
{
|
||||
"id": "reset_password_content",
|
||||
"translation": "암호를 리셋하려면 아래의 링크를 눌러주세요"
|
||||
},
|
||||
{
|
||||
"id":"register_title",
|
||||
"translation": "새 계정 만들기"
|
||||
},
|
||||
{
|
||||
"id":"signup_box_title",
|
||||
"translation": "회원가입 해주세요! <small>가입은 무료이며 언제나 그럴 것입니다</small>"
|
||||
},
|
||||
{
|
||||
"id":"username",
|
||||
"translation": "별명"
|
||||
},
|
||||
{
|
||||
"id":"email_address_or_username",
|
||||
"translation": "이메일 주소 혹은 별명"
|
||||
},
|
||||
{
|
||||
"id":"email_address",
|
||||
"translation": "이메일 주소"
|
||||
},
|
||||
{
|
||||
"id":"password",
|
||||
"translation": "암호"
|
||||
},
|
||||
{
|
||||
"id":"confirm_password",
|
||||
"translation": "암호 확인"
|
||||
},
|
||||
{
|
||||
"id":"i_agree",
|
||||
"translation": "동의합니다"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_confirm",
|
||||
"translation": "<strong class=\"label label-primary\">회원가입</strong>을 하시면, 쿠키 사용과 더불어 <a href=\"#\" data-toggle=\"modal\" data-target=\"#t_and_c_m\">약관</a>에 동의하신 것으로 간주합니다."
|
||||
},
|
||||
{
|
||||
"id":"signin",
|
||||
"translation": "로그인"
|
||||
},
|
||||
{
|
||||
"id":"register",
|
||||
"translation": "가입"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions",
|
||||
"translation": "약관"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_full",
|
||||
"translation": "블라블라"
|
||||
},
|
||||
{
|
||||
"id":"remember_me",
|
||||
"translation": "로그인 유지"
|
||||
},
|
||||
{
|
||||
"id":"forgot_password",
|
||||
"translation": "암호를 잊어버리셨나요?"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_box_title",
|
||||
"translation": "로그인하세요"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_title",
|
||||
"translation": "로그인"
|
||||
},
|
||||
{
|
||||
"id":"register_success_title",
|
||||
"translation": "성공적으로 가입했습니다!"
|
||||
},
|
||||
{
|
||||
"id":"sign_up_success",
|
||||
"translation": "가입해주셔서 고마워요!"
|
||||
},
|
||||
{
|
||||
"id":"verify_success",
|
||||
"translation": "<i style=\"color:limegreen\" class=\"glyphicon glyphicon-ok-circle\"></i>계정이 활성화 되었습니다!"
|
||||
},
|
||||
{
|
||||
"id":"signup_verification_email",
|
||||
"translation": "마지막으로 이메일 인증을 완료해 주세요! 이메일이 도착하지 않았다면 스팸 메일함도 확인해 주세요."
|
||||
},
|
||||
{
|
||||
"id":"settings",
|
||||
"translation": "계정 설정"
|
||||
},
|
||||
{
|
||||
"id":"torrents",
|
||||
"translation": "토렌트"
|
||||
},
|
||||
{
|
||||
"id":"follow",
|
||||
"translation": "팔로우"
|
||||
},
|
||||
{
|
||||
"id":"profile_page",
|
||||
"translation": "%s 프로필 페이지"
|
||||
},
|
||||
{
|
||||
"id":"see_more_torrents_from",
|
||||
"translation": "%s 에서 더 많은 토렌트 보기"
|
||||
},
|
||||
{
|
||||
"id":"category",
|
||||
"translation": "카테고리"
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"translation": "이름"
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"translation": "날짜"
|
||||
},
|
||||
{
|
||||
"id": "size",
|
||||
"translation": "크기"
|
||||
},
|
||||
{
|
||||
"id": "links",
|
||||
"translation": "링크"
|
||||
},
|
||||
{
|
||||
"id": "home",
|
||||
"translation": "홈"
|
||||
},
|
||||
{
|
||||
"id": "error_404",
|
||||
"translation": "에러 404"
|
||||
},
|
||||
{
|
||||
"id": "toggle_navigation",
|
||||
"translation": "네비게이션 토글"
|
||||
},
|
||||
{
|
||||
"id": "upload",
|
||||
"translation": "업로드"
|
||||
},
|
||||
{
|
||||
"id": "faq",
|
||||
"translation": "FAQ"
|
||||
},
|
||||
{
|
||||
"id": "fap",
|
||||
"translation": "딸"
|
||||
},
|
||||
{
|
||||
"id": "advanced_search",
|
||||
"translation": "고급 검색"
|
||||
},
|
||||
{
|
||||
"id": "nothing_here",
|
||||
"translation": "아무것도 없음"
|
||||
},
|
||||
{
|
||||
"id": "404_not_found",
|
||||
"translation": "404 Not Found"
|
||||
},
|
||||
{
|
||||
"id": "no_torrents_uploaded",
|
||||
"translation": "아직 토렌트가 업로드 되지 않았습니다!"
|
||||
},
|
||||
{
|
||||
"id": "profile",
|
||||
"translation": "프로필"
|
||||
},
|
||||
{
|
||||
"id": "sign_out",
|
||||
"translation": "로그아웃"
|
||||
},
|
||||
{
|
||||
"id": "member",
|
||||
"translation": "멤버"
|
||||
},
|
||||
{
|
||||
"id": "sign_in",
|
||||
"translation": "로그인"
|
||||
},
|
||||
{
|
||||
"id": "sign_up",
|
||||
"translation": "가입"
|
||||
},
|
||||
{
|
||||
"id": "no_results_found",
|
||||
"translation": "결과 없음"
|
||||
},
|
||||
{
|
||||
"id": "notice_keep_seeding",
|
||||
"translation": "제발좀: 시딩 부탁드려요. DHT 설정도 활성화 되어있는지 확인해주세요."
|
||||
},
|
||||
{
|
||||
"id": "official_nyaapocalipse_faq",
|
||||
"translation": "공식 Nyaapocalypse FAQ"
|
||||
},
|
||||
{
|
||||
"id": "links_replacement_mirror",
|
||||
"translation": "대체 사이트/미러 링크"
|
||||
},
|
||||
{
|
||||
"id": "what_happened",
|
||||
"translation": "무슨 일이 있었던거야?"
|
||||
},
|
||||
{
|
||||
"id": "nyaa_se_went_offline",
|
||||
"translation": "2017년 5월 1일, 모든 nyaa.se 관련 도메인들의 연결이 해제되었습니다"
|
||||
},
|
||||
{
|
||||
"id": "its_not_a_ddos",
|
||||
"translation": "비활성화 된 것으로, 평소처럼의 DDOS에 의한 것은 아닙니다."
|
||||
},
|
||||
{
|
||||
"id": "future_not_looking_good",
|
||||
"translation": "nyaa 토렌트의 미래는 그렇게 좋아보이지는 않네요. (현재 완전히 사망-처리됨)"
|
||||
},
|
||||
{
|
||||
"id": "recovery_effort",
|
||||
"translation": "현재 사방에서 복구하려는 노력이 있습니다."
|
||||
},
|
||||
{
|
||||
"id": "is_everything_lost",
|
||||
"translation": "모든 자료가 다 날라간거야?"
|
||||
},
|
||||
{
|
||||
"id": "in_short_no",
|
||||
"translation": "간단히 말하면, 아닙니다"
|
||||
},
|
||||
{
|
||||
"id": "are_some_things_lost",
|
||||
"translation": "그럼 일부가 날라갔단거네"
|
||||
},
|
||||
{
|
||||
"id": "answer_is_nyaa_db_lost",
|
||||
"translation": "저희는 현재 <s>4월 5일</s> 5월 1일까지의 데이터베이스를 확보했습니다. 거의 대부분이 살아있다는 거죠."
|
||||
},
|
||||
{
|
||||
"id": "answer_is_sukebei_db_lost",
|
||||
"translation": "Sukebei 쪽은 상황이 안좋습니다. 2016까지의 데이터 밖에 없어요. 그러나 새 데이터베이스가 나온다면 적용이 가능합니다."
|
||||
},
|
||||
{
|
||||
"id": "how_are_we_recovering",
|
||||
"translation": "어떻게 복구하는거야?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_are_we_recovering",
|
||||
"translation": "nyaa.pantsu.cat 과 sukebei.pantsu.cat 에서 상기한 데이터베이스를 이용해 호스팅 중입니다. 현재는 검색기능 뿐이지만, 곧 완전한 기능이 완성 될겁니다. Seeder/leecher 통계는 scraping 을 통해 가능하며 가까운 시일내에 복구될 것이지만, 현재는 다른 기능을 중점적으로 작업중입니다."
|
||||
},
|
||||
{
|
||||
"id": "are_the_trackers_working",
|
||||
"translation": "토렌트들은 이용할 수 있다는거지?"
|
||||
},
|
||||
{
|
||||
"id": "answer_are_the_trackers_working",
|
||||
"translation": "트래커들이 다운 됬어도 분산 DHT network를 통해 시더들과 연결할 수 있습니다. DHT network에 파일 리스트들이 있는 한, 평소처럼 이용이 가능합니다."
|
||||
},
|
||||
{
|
||||
"id": "how_do_i_download_the_torrents",
|
||||
"translation": "어떻게 토렌트를 다운로드 하는거야?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_do_i_download_the_torrents",
|
||||
"translation": "그냥 <b>마그넷 링크</b>를 이용하세요. 마그넷 링크는 DHT network 에서 파일을 찾는걸 도와줍니다. 그냥 그렇게 쓰면 됩니다."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link_should_look_like",
|
||||
"translation": "마그넷 링크는 이렇게 생겼습니다:"
|
||||
},
|
||||
{
|
||||
"id": "which_trackers_do_you_recommend",
|
||||
"translation": "어떤 트래커를 쓰는게 좋아?"
|
||||
},
|
||||
{
|
||||
"id": "answer_which_trackers_do_you_recommend",
|
||||
"translation": "트래커가 없어서 다운로드가 불가능 하다면, 다음을 이용하세요:"
|
||||
},
|
||||
{
|
||||
"id": "how_can_i_help",
|
||||
"translation": "뭐 도와줄거 없어?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_can_i_help",
|
||||
"translation": "웹 개발을 해보셨다면, irc.rizon.net에 오세요. 새 데이터베이스들, 특히 sukebei 쪽을 가지고 계시다면 <b>업로드 부탁드립니다</b>."
|
||||
},
|
||||
{
|
||||
"id": "your_design_sucks_found_a_bug",
|
||||
"translation": "디자인 거지같네 / 버그 있잖아"
|
||||
},
|
||||
{
|
||||
"id": "why_written_in_go",
|
||||
"translation": "왜 Go 언어요?"
|
||||
},
|
||||
{
|
||||
"id": "authors_favorite_language",
|
||||
"translation": "제일 좋아하는 언어입니다. >__- 찡긋"
|
||||
},
|
||||
{
|
||||
"id": "nyaa_pantsu_dont_host_files",
|
||||
"translation": "nyaa.pantsu.cat 와 sukebei.pantsu.cat 는 그 어떤 파일도 호스팅하고 있지 않습니다"
|
||||
},
|
||||
{
|
||||
"id": "upload_magnet",
|
||||
"translation": "마그넷 업로드"
|
||||
},
|
||||
{
|
||||
"id": "torrent_file",
|
||||
"translation": "토렌트 파일"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"translation": "토렌트 파일을 업로드하면 몇몇 필드가 자동으로 채워집니다. 추천드립니다."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link",
|
||||
"translation": "마그넷 링크"
|
||||
},
|
||||
{
|
||||
"id": "all_categories",
|
||||
"translation": "모든 카테고리"
|
||||
},
|
||||
{
|
||||
"id": "anime",
|
||||
"translation": "Anime"
|
||||
},
|
||||
{
|
||||
"id": "anime_amv",
|
||||
"translation": "Anime - 애니메이션 뮤직 비디오"
|
||||
},
|
||||
{
|
||||
"id": "anime_english_translated",
|
||||
"translation": "Anime - 영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "anime_non_english_translated",
|
||||
"translation": "Anime - 비-영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "anime_raw",
|
||||
"translation": "Anime - Raw"
|
||||
},
|
||||
{
|
||||
"id": "audio",
|
||||
"translation": "Audio"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossless",
|
||||
"translation": "Audio - 비손실"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossy",
|
||||
"translation": "Audio - 손실"
|
||||
},
|
||||
{
|
||||
"id": "literature",
|
||||
"translation": "Literature"
|
||||
},
|
||||
{
|
||||
"id": "literature_english_translated",
|
||||
"translation": "Literature - 영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "literature_raw",
|
||||
"translation": "Literature - Raw"
|
||||
},
|
||||
{
|
||||
"id": "literature_non_english_translated",
|
||||
"translation": "Literature - 비-영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "live_action",
|
||||
"translation": "Live Action"
|
||||
},
|
||||
{
|
||||
"id": "live_action_english_translated",
|
||||
"translation": "Live Action - 영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "live_action_idol_pv",
|
||||
"translation": "Live Action - 아이돌/상업적 영상"
|
||||
},
|
||||
{
|
||||
"id": "live_action_non_english_translated",
|
||||
"translation": "Live Action - 비-영문 번역"
|
||||
},
|
||||
{
|
||||
"id": "live_action_raw",
|
||||
"translation": "Live Action - Raw"
|
||||
},
|
||||
{
|
||||
"id": "pictures",
|
||||
"translation": "Pictures"
|
||||
},
|
||||
{
|
||||
"id": "pictures_graphics",
|
||||
"translation": "Pictures - 그래픽"
|
||||
},
|
||||
{
|
||||
"id": "pictures_photos",
|
||||
"translation": "Pictures - 사진"
|
||||
},
|
||||
{
|
||||
"id": "software",
|
||||
"translation": "Software"
|
||||
},
|
||||
{
|
||||
"id": "software_applications",
|
||||
"translation": "Software - 응용프로그램"
|
||||
},
|
||||
{
|
||||
"id": "software_games",
|
||||
"translation": "Software - 게임"
|
||||
},
|
||||
{
|
||||
"id": "torrent_description",
|
||||
"translation": "토렌트 설명"
|
||||
},
|
||||
{
|
||||
"id": "limited_html_set_is_allowed_use",
|
||||
"translation": "몇몇 HTML 태그가 사용 가능합니다"
|
||||
},
|
||||
{
|
||||
"id": "show_all",
|
||||
"translation": "모두 보기"
|
||||
},
|
||||
{
|
||||
"id": "filter_remakes",
|
||||
"translation": "Filter Remakes"
|
||||
},
|
||||
{
|
||||
"id": "trusted",
|
||||
"translation": "신뢰된"
|
||||
},
|
||||
{
|
||||
"id": "id",
|
||||
"translation": "ID"
|
||||
},
|
||||
{
|
||||
"id": "downloads",
|
||||
"translation": "다운로드"
|
||||
},
|
||||
{
|
||||
"id": "descending",
|
||||
"translation": "내림차순"
|
||||
},
|
||||
{
|
||||
"id": "ascending",
|
||||
"translation": "오름차순"
|
||||
},
|
||||
{
|
||||
"id": "search",
|
||||
"translation": "검색"
|
||||
},
|
||||
{
|
||||
"id": "hash",
|
||||
"translation": "해시"
|
||||
},
|
||||
{
|
||||
"id": "description",
|
||||
"translation": "설명"
|
||||
},
|
||||
{
|
||||
"id": "comments",
|
||||
"translation": "댓글"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_username",
|
||||
"translation": "내 이름(%s)으로 댓글"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_anonymous",
|
||||
"translation": "익명으로 댓글"
|
||||
},
|
||||
{
|
||||
"id": "submit",
|
||||
"translation": "확인"
|
||||
}
|
||||
]
|
498
translations/ru-ru.all.json
Fichier normal
498
translations/ru-ru.all.json
Fichier normal
|
@ -0,0 +1,498 @@
|
|||
[
|
||||
{
|
||||
"id": "link",
|
||||
"translation": "ссылка"
|
||||
},
|
||||
{
|
||||
"id": "verify_email_title",
|
||||
"translation": "Подтвердите свой Email адрес для Goyangi."
|
||||
},
|
||||
{
|
||||
"id": "verify_email_content",
|
||||
"translation": "Нажмите на ссылку ниже, чтобы подтвердить свой Email адрес."
|
||||
},
|
||||
{
|
||||
"id": "reset_password_title",
|
||||
"translation": "Восстановить пароль для Goyangi."
|
||||
},
|
||||
{
|
||||
"id": "reset_password_content",
|
||||
"translation": "Нажмите ссылку ниже, чтобы восстановить пароль."
|
||||
},
|
||||
{
|
||||
"id":"register_title",
|
||||
"translation": "Создание новой учетной записи"
|
||||
},
|
||||
{
|
||||
"id":"signup_box_title",
|
||||
"translation": "Пожалуйста, зарегистрируйтесь <small>Это бесплатно и всегда будет.</small>"
|
||||
},
|
||||
{
|
||||
"id":"username",
|
||||
"translation": "Имя пользователя"
|
||||
},
|
||||
{
|
||||
"id":"email_address_or_username",
|
||||
"translation": "Email адрес или Имя пользователя"
|
||||
},
|
||||
{
|
||||
"id":"email_address",
|
||||
"translation": "Email адрес"
|
||||
},
|
||||
{
|
||||
"id":"password",
|
||||
"translation": "Пароль"
|
||||
},
|
||||
{
|
||||
"id":"confirm_password",
|
||||
"translation": "Подтвердите Пароль"
|
||||
},
|
||||
{
|
||||
"id":"i_agree",
|
||||
"translation": "Я согласен"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_confirm",
|
||||
"translation": "Нажимая <strong class=\"label label-primary\">Регистрация</strong>, вы соглашаетесь с <a href=\"#\" data-toggle=\"modal\" data-target=\"#t_and_c_m\">Правилами и условиями</a>, указанными на этом сайте, включая использование файлов Cookie."
|
||||
},
|
||||
{
|
||||
"id":"signin",
|
||||
"translation": "Вход"
|
||||
},
|
||||
{
|
||||
"id":"register",
|
||||
"translation": "Регистрация"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions",
|
||||
"translation": "Правила и условия"
|
||||
},
|
||||
{
|
||||
"id":"terms_conditions_full",
|
||||
"translation": "Некоторое дерьмо."
|
||||
},
|
||||
{
|
||||
"id":"remember_me",
|
||||
"translation": "Запомнить меня"
|
||||
},
|
||||
{
|
||||
"id":"forgot_password",
|
||||
"translation": "Забыли пароль?"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_box_title",
|
||||
"translation": "Пожалуйста войдите"
|
||||
},
|
||||
{
|
||||
"id":"sign_in_title",
|
||||
"translation": "Вход"
|
||||
},
|
||||
{
|
||||
"id":"register_success_title",
|
||||
"translation": "Успешная регистрация"
|
||||
},
|
||||
{
|
||||
"id":"sign_up_success",
|
||||
"translation": "Благодарим за регистрацию!"
|
||||
},
|
||||
{
|
||||
"id":"verify_success",
|
||||
"translation": "<i style=\"color:limegreen\" class=\"glyphicon glyphicon-ok-circle\"></i>Теперь ваша учетная запись активирована!"
|
||||
},
|
||||
{
|
||||
"id":"signup_verification_email",
|
||||
"translation": "Теперь, в качестве последнего шага регистрации, проверьте свой почтовый ящик (или папку спам) и нажмите ссылку для активации вашей учетной записи!"
|
||||
},
|
||||
{
|
||||
"id":"settings",
|
||||
"translation": "Настройки учетной записи"
|
||||
},
|
||||
{
|
||||
"id":"torrents",
|
||||
"translation": "Торренты"
|
||||
},
|
||||
{
|
||||
"id":"follow",
|
||||
"translation": "Следить"
|
||||
},
|
||||
{
|
||||
"id":"profile_page",
|
||||
"translation": "Страница профиля %s"
|
||||
},
|
||||
{
|
||||
"id":"see_more_torrents_from",
|
||||
"translation": "Смотреть другие торренты %s "
|
||||
},
|
||||
{
|
||||
"id":"category",
|
||||
"translation": "Категория"
|
||||
},
|
||||
{
|
||||
"id": "name",
|
||||
"translation": "Название"
|
||||
},
|
||||
{
|
||||
"id": "date",
|
||||
"translation": "Дата"
|
||||
},
|
||||
{
|
||||
"id": "size",
|
||||
"translation": "Размер"
|
||||
},
|
||||
{
|
||||
"id": "links",
|
||||
"translation": "Ссылки"
|
||||
},
|
||||
{
|
||||
"id": "home",
|
||||
"translation": "Главная"
|
||||
},
|
||||
{
|
||||
"id": "error_404",
|
||||
"translation": "Ошибка 404"
|
||||
},
|
||||
{
|
||||
"id": "toggle_navigation",
|
||||
"translation": "Включить навигацию"
|
||||
},
|
||||
{
|
||||
"id": "upload",
|
||||
"translation": "Загрузить"
|
||||
},
|
||||
{
|
||||
"id": "faq",
|
||||
"translation": "FAQ"
|
||||
},
|
||||
{
|
||||
"id": "fap",
|
||||
"translation": "Фап"
|
||||
},
|
||||
{
|
||||
"id": "advanced_search",
|
||||
"translation": "Расширенный поиск"
|
||||
},
|
||||
{
|
||||
"id": "nothing_here",
|
||||
"translation": "Здесь ничего нет."
|
||||
},
|
||||
{
|
||||
"id": "404_not_found",
|
||||
"translation": "404 Не найдено"
|
||||
},
|
||||
{
|
||||
"id": "no_torrents_uploaded",
|
||||
"translation": "Нет загруженных торрентов!"
|
||||
},
|
||||
{
|
||||
"id": "profile",
|
||||
"translation": "Профиль"
|
||||
},
|
||||
{
|
||||
"id": "sign_out",
|
||||
"translation": "Выход"
|
||||
},
|
||||
{
|
||||
"id": "member",
|
||||
"translation": "Пользователь"
|
||||
},
|
||||
{
|
||||
"id": "sign_in",
|
||||
"translation": "Войти"
|
||||
},
|
||||
{
|
||||
"id": "sign_up",
|
||||
"translation": "Зарегистрироваться"
|
||||
},
|
||||
{
|
||||
"id": "no_results_found",
|
||||
"translation": "Результаты не найдены"
|
||||
},
|
||||
{
|
||||
"id": "notice_keep_seeding",
|
||||
"translation": "УВЕДОМЛЕНИЕ: УДЕРЖИВАЙ РАЗДАЧУ И ВКЛЮЧАЙ DHT ТЫ ТОРМОЗ"
|
||||
},
|
||||
{
|
||||
"id": "official_nyaapocalipse_faq",
|
||||
"translation": "Официальное Няпокалипсис FAQ"
|
||||
},
|
||||
{
|
||||
"id": "links_replacement_mirror",
|
||||
"translation": "Ссылки на замены/зеркала"
|
||||
},
|
||||
{
|
||||
"id": "what_happened",
|
||||
"translation": "Что произошло?"
|
||||
},
|
||||
{
|
||||
"id": "nyaa_se_went_offline",
|
||||
"translation": "nyaa.se и связанные с ними домены (например, nyaatorrents.info), отключились 1 мая 2017 года."
|
||||
},
|
||||
{
|
||||
"id": "its_not_a_ddos",
|
||||
"translation": "Они были деактивированы, так что это не DDoS-атака, как обычно."
|
||||
},
|
||||
{
|
||||
"id": "future_not_looking_good",
|
||||
"translation": "Будущие перспективы для nyaa выглядят не очень хорошо. (Он мертв)"
|
||||
},
|
||||
{
|
||||
"id": "recovery_effort",
|
||||
"translation": "Идет процесс восстановления."
|
||||
},
|
||||
{
|
||||
"id": "is_everything_lost",
|
||||
"translation": "Все потеряно?"
|
||||
},
|
||||
{
|
||||
"id": "in_short_no",
|
||||
"translation": "Короче говоря, нет."
|
||||
},
|
||||
{
|
||||
"id": "are_some_things_lost",
|
||||
"translation": "Некоторые вещи потеряны?"
|
||||
},
|
||||
{
|
||||
"id": "answer_is_nyaa_db_lost",
|
||||
"translation": "У нас есть база данных торрентов на nyaa до <s>5 апреля</s> 1 мая. Это означает, что почти ничего не потеряно."
|
||||
},
|
||||
{
|
||||
"id": "answer_is_sukebei_db_lost",
|
||||
"translation": "Однако, Sukebei не в лучшей форме. В настоящее время у нас есть только сукебские базы данных до 2016 года, но более новая база данных может быть доступна для использования."
|
||||
},
|
||||
{
|
||||
"id": "how_are_we_recovering",
|
||||
"translation": "Как мы выздоравливаем?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_are_we_recovering",
|
||||
"translation": "Вышеупомянутые базы данных размещаются на сайтах nyaa.pantsu.cat и sukebei.pantsu.cat. Существует функция поиска, и (почти) полная функциональность nyaa должна появиться в ближайшее время. Статистика Раздающих/Скачавших возможна с помощью скраппинга и может быть восстановлена в будущем, так как сейчас у нас в большем приоритете другие функции."
|
||||
},
|
||||
{
|
||||
"id": "are_the_trackers_working",
|
||||
"translation": "Торренты все еще работают?"
|
||||
},
|
||||
{
|
||||
"id": "answer_are_the_trackers_working",
|
||||
"translation": "Даже если трекеры не работают, раздающие все еще подключены к децентрализованной сети DHT. Пока файл находится в сети DHT, все должено работать как обычно."
|
||||
},
|
||||
{
|
||||
"id": "how_do_i_download_the_torrents",
|
||||
"translation": "Как скачать торренты?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_do_i_download_the_torrents",
|
||||
"translation": "Просто используйте <b>магнитную ссылку</b>. Магнит ссылка будет использоваться вашим клиентом BitTorrent для поиска файла в сети DHT, и они должены загружаться просто отлично."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link_should_look_like",
|
||||
"translation": "Магнит ссылка должна выглядеть так:"
|
||||
},
|
||||
{
|
||||
"id": "which_trackers_do_you_recommend",
|
||||
"translation": "Какие трекеры вы рекомендуете использовать?"
|
||||
},
|
||||
{
|
||||
"id": "answer_which_trackers_do_you_recommend",
|
||||
"translation": "Если ваша торрент-загрузка запрещена из-за трекеров, вам нужно добавить некоторые из них:"
|
||||
},
|
||||
{
|
||||
"id": "how_can_i_help",
|
||||
"translation": "Чем могу помочь?"
|
||||
},
|
||||
{
|
||||
"id": "answer_how_can_i_help",
|
||||
"translation": "Если у вас есть опыт разработки веб-сайтов, вы можете присоединиться к IRC-каналу #nyaapantsu на irc.rizon.net. Если у вас есть свежие базы данных, особенно для sukebei, <b>ЗАГРУЗИТЕ ИХ</b>."
|
||||
},
|
||||
{
|
||||
"id": "your_design_sucks_found_a_bug",
|
||||
"translation": "Ваш дизайн отстой / Я нашел ошибку"
|
||||
},
|
||||
{
|
||||
"id": "why_written_in_go",
|
||||
"translation": "Почему ваше дерьмо написано на Go?"
|
||||
},
|
||||
{
|
||||
"id": "authors_favorite_language",
|
||||
"translation": "Это любимый язык программирования автора."
|
||||
},
|
||||
{
|
||||
"id": "nyaa_pantsu_dont_host_files",
|
||||
"translation": "nyaa.pantsu.cat и sukebei.pantsu.cat не содержат файлы."
|
||||
},
|
||||
{
|
||||
"id": "upload_magnet",
|
||||
"translation": "Загрузить магнит"
|
||||
},
|
||||
{
|
||||
"id": "torrent_file",
|
||||
"translation": "Торрент-файл"
|
||||
},
|
||||
{
|
||||
"id": "uploading_torrent_prefills_fields",
|
||||
"translation": "Загрузка торрент-файла позволяет предварительно заполнить некоторые поля, это рекомендуется."
|
||||
},
|
||||
{
|
||||
"id": "magnet_link",
|
||||
"translation": "Магнит ссылка"
|
||||
},
|
||||
{
|
||||
"id": "all_categories",
|
||||
"translation": "Все категории"
|
||||
},
|
||||
{
|
||||
"id": "anime",
|
||||
"translation": "Аниме"
|
||||
},
|
||||
{
|
||||
"id": "anime_amv",
|
||||
"translation": "Аниме - Аниме Музыка Видео"
|
||||
},
|
||||
{
|
||||
"id": "anime_english_translated",
|
||||
"translation": "Аниме - Английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "anime_non_english_translated",
|
||||
"translation": "Аниме - Не-английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "anime_raw",
|
||||
"translation": "Аниме - Raw"
|
||||
},
|
||||
{
|
||||
"id": "audio",
|
||||
"translation": "Аудио"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossless",
|
||||
"translation": "Аудио - Lossless"
|
||||
},
|
||||
{
|
||||
"id": "audio_lossy",
|
||||
"translation": "Аудио - Lossy"
|
||||
},
|
||||
{
|
||||
"id": "literature",
|
||||
"translation": "Литература"
|
||||
},
|
||||
{
|
||||
"id": "literature_english_translated",
|
||||
"translation": "Литература - Английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "literature_raw",
|
||||
"translation": "Литература - Raw"
|
||||
},
|
||||
{
|
||||
"id": "literature_non_english_translated",
|
||||
"translation": "Литература - Не-английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "live_action",
|
||||
"translation": "Игровое кино"
|
||||
},
|
||||
{
|
||||
"id": "live_action_english_translated",
|
||||
"translation": "Игровое кино - Английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "live_action_idol_pv",
|
||||
"translation": "Игровое кино - Идол / Рекламное видео"
|
||||
},
|
||||
{
|
||||
"id": "live_action_non_english_translated",
|
||||
"translation": "Игровое кино - Не-английский-перевод"
|
||||
},
|
||||
{
|
||||
"id": "live_action_raw",
|
||||
"translation": "Игровое кино - Raw"
|
||||
},
|
||||
{
|
||||
"id": "pictures",
|
||||
"translation": "Картинки"
|
||||
},
|
||||
{
|
||||
"id": "pictures_graphics",
|
||||
"translation": "Картинки - Графика"
|
||||
},
|
||||
{
|
||||
"id": "pictures_photos",
|
||||
"translation": "Картинки - Фото"
|
||||
},
|
||||
{
|
||||
"id": "software",
|
||||
"translation": "Софт"
|
||||
},
|
||||
{
|
||||
"id": "software_applications",
|
||||
"translation": "Софт - Приложения"
|
||||
},
|
||||
{
|
||||
"id": "software_games",
|
||||
"translation": "Софт - Игры"
|
||||
},
|
||||
{
|
||||
"id": "torrent_description",
|
||||
"translation": "Описание торрента"
|
||||
},
|
||||
{
|
||||
"id": "limited_html_set_is_allowed_use",
|
||||
"translation": "В описании допускается ограниченный набор HTML, поэтому обязательно используйте"
|
||||
},
|
||||
{
|
||||
"id": "show_all",
|
||||
"translation": "Показать все"
|
||||
},
|
||||
{
|
||||
"id": "filter_remakes",
|
||||
"translation": "Фильтрация римейков"
|
||||
},
|
||||
{
|
||||
"id": "trusted",
|
||||
"translation": "Доверенные"
|
||||
},
|
||||
{
|
||||
"id": "id",
|
||||
"translation": "ID"
|
||||
},
|
||||
{
|
||||
"id": "downloads",
|
||||
"translation": "Загрузки"
|
||||
},
|
||||
{
|
||||
"id": "descending",
|
||||
"translation": "Нисходящий"
|
||||
},
|
||||
{
|
||||
"id": "ascending",
|
||||
"translation": "Восходящий"
|
||||
},
|
||||
{
|
||||
"id": "search",
|
||||
"translation": "Поиск"
|
||||
},
|
||||
{
|
||||
"id": "hash",
|
||||
"translation": "Хеш"
|
||||
},
|
||||
{
|
||||
"id": "description",
|
||||
"translation": "Описание"
|
||||
},
|
||||
{
|
||||
"id": "comments",
|
||||
"translation": "Комментарии"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_username",
|
||||
"translation": "Отправить комментарий как %s"
|
||||
},
|
||||
{
|
||||
"id": "submit_a_comment_as_anonymous",
|
||||
"translation": "Отправить комментарий как Анонимный"
|
||||
},
|
||||
{
|
||||
"id": "submit",
|
||||
"translation": "Отправить"
|
||||
}
|
||||
]
|
|
@ -57,6 +57,16 @@ type SearchParam struct {
|
|||
}
|
||||
|
||||
func SearchByQuery(r *http.Request, pagenum int) (search SearchParam, tor []model.Torrents, count int, err error) {
|
||||
search, tor, count, err = searchByQuery(r, pagenum, true)
|
||||
return
|
||||
}
|
||||
|
||||
func SearchByQueryNoCount(r *http.Request, pagenum int) (search SearchParam, tor []model.Torrents, err error) {
|
||||
search, tor, _, err = searchByQuery(r, pagenum, false)
|
||||
return
|
||||
}
|
||||
|
||||
func searchByQuery(r *http.Request, pagenum int, countAll bool) (search SearchParam, tor []model.Torrents, count int, err error) {
|
||||
max, err := strconv.ParseUint(r.URL.Query().Get("max"), 10, 32)
|
||||
if err != nil {
|
||||
err = nil
|
||||
|
@ -180,6 +190,10 @@ func SearchByQuery(r *http.Request, pagenum int) (search SearchParam, tor []mode
|
|||
|
||||
parameters.Conditions = strings.Join(conditions[:], " AND ")
|
||||
log.Infof("SQL query is :: %s\n", parameters.Conditions)
|
||||
tor, count, err = torrentService.GetTorrentsOrderBy(¶meters, order_by, int(search.Max), int(search.Max)*(pagenum-1))
|
||||
if countAll {
|
||||
tor, count, err = torrentService.GetTorrentsOrderBy(¶meters, order_by, int(search.Max), int(search.Max)*(pagenum-1))
|
||||
} else {
|
||||
tor, err = torrentService.GetTorrentsOrderByNoCount(¶meters, order_by, int(search.Max), int(search.Max)*(pagenum-1))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
Référencer dans un nouveau ticket