package moderatorController
import (
"github.com/NyaaPantsu/nyaa/models/torrents"
"github.com/NyaaPantsu/nyaa/models/users"
"github.com/NyaaPantsu/nyaa/templates"
msg "github.com/NyaaPantsu/nyaa/utils/messages"
"github.com/NyaaPantsu/nyaa/utils/validator/torrent"
"github.com/gin-gonic/gin"
)
// TorrentReassignModPanel : Controller for reassigning a torrent, after GET request
func TorrentReassignModPanel(c *gin.Context) {
templates.Form(c, "admin/reassign.jet.html", torrentValidator.ReassignForm{})
}
// ExecuteReassign : Function for applying the changes from ReassignForm
func ExecuteReassign(f *torrentValidator.ReassignForm) (int, error) {
var toBeChanged []uint
var err error
if f.By == "olduser" {
toBeChanged, err = users.FindOldUploadsByUsername(f.Data)
if err != nil {
return 0, err
} else if f.By == "torrentid" {
toBeChanged = f.Torrents
num := 0
for _, torrentID := range toBeChanged {
torrent, err2 := torrents.FindRawByID(torrentID)
if err2 == nil {
torrent.UploaderID = f.AssignTo
torrent.Update(true)
num++
return num, nil
// TorrentPostReassignModPanel : Controller for reassigning a torrent, after POST request
func TorrentPostReassignModPanel(c *gin.Context) {
var rForm torrentValidator.ReassignForm
messages := msg.GetMessages(c)
if rForm.ExtractInfo(c) {
count, err2 := ExecuteReassign(&rForm)
if err2 != nil {
messages.AddErrorT("errors", "something_went_wrong")
} else {
messages.AddInfoTf("infos", "nb_torrents_updated", count)
templates.Form(c, "admin/reassign.jet.html", rForm)