diff --git a/src/Jackett/Definitions/torviet.yml b/src/Jackett/Definitions/torviet.yml
new file mode 100644
index 000000000..ebdab863a
--- /dev/null
+++ b/src/Jackett/Definitions/torviet.yml
@@ -0,0 +1,129 @@
+---
+ site: torviet
+ name: TorViet
+ language: vi-vn
+ encoding: UTF-8
+ links:
+ - http://torviet.com
+
+ caps:
+ categories:
+ 1: Console # Game
+ 7: PC/Games # PC
+ 133: PC/Phone-Other # Handheld
+ 132: Console # Console
+
+ 2: Movies # Movie
+ 23: Movies/HD # mHD
+ 24: Movies/SD # SD
+ 124: Movies/HD # 720p
+ 125: Movies/HD # 1080p
+ 127: Movies/BluRay # Blu-ray
+
+ 3: TV # TV
+ 128: TV/HD # HD
+ 129: TV/SD # SD
+
+ 4: PC # Software
+ 76: PC/0day # Windows
+ 77: PC/Mac # MAC
+ 78: PC # Linux
+ 79: PC/Phone-Other # Handheld
+
+ 5: Audio # Music
+ 92: Audio/Video # Music Video
+ 126: Audio/Lossless # Lossless
+ 130: Audio/MP3 # Lossy
+ 131: Audio # Surround
+
+ 6: Other # Misc
+ 112: Books # Ebook
+ 113: Other # Training Video
+ 117: Audio/Audiobook # Audio book
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+
+ login:
+ path: /takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("failed"))
+ test:
+ path: /torrents.php
+
+ ratio:
+ path: /torrents.php
+ selector: table#info_block
+ filters:
+ - name: regexp
+ args: "Ratio:\\s(.*?)\\s\\s"
+
+ search:
+ path: /torrents.php
+ inputs:
+ search: "{{ .Query.Keywords }}"
+ sltCategory: 0
+ sltSubCategory: 0 # can't sepcify multiple categorys so we're useing all always
+ sltGenre: 0
+ incldead: 1
+ spstate: 0
+ inclbookmarked: 0
+ search_area: 0
+ search_mode: 0
+
+ rows:
+ selector: div#idtorrent > table.torrents > tbody > tr:has(table.torrentname)
+ fields:
+ title:
+ selector: a[class][title]
+ attribute: title
+ details:
+ selector: a[class][title]
+ attribute: href
+ description:
+ selector: td.embedded:has(a[title])
+ remove: a[title]
+ category:
+ selector: a[href^="/torrents.php?sltSubCategory="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: sltSubCategory
+ comments:
+ selector: td:nth-child(3) a
+ attribute: href
+ download:
+ selector: a[href^="/download.php?"]
+ attribute: href
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ date:
+ selector: td:nth-child(4)
+ filters:
+ - name: append
+ args: " ago"
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: "0"
+ img.pro_free2up: "0"
+ img.pro_50pctdown: "0.5"
+ img.pro_50pctdown2up: "0.5"
+ img.pro_30pctdown: "0.3"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: "2"
+ img.pro_free2up: "2"
+ img.pro_2up: "2"
+ "*": "1"
\ No newline at end of file
diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj
index bbe6204d7..d17a88871 100644
--- a/src/Jackett/Jackett.csproj
+++ b/src/Jackett/Jackett.csproj
@@ -453,6 +453,9 @@
PreserveNewest
+
+ PreserveNewest
+
Designer