add raw handler support
This commit is contained in:
@@ -1,9 +1,51 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"ladder/proxychain"
|
||||
rx "ladder/proxychain/requestmodifiers"
|
||||
tx "ladder/proxychain/responsemodifiers"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
func Raw(c *fiber.Ctx) error {
|
||||
return nil
|
||||
func NewRawProxySiteHandler(opts *ProxyOptions) fiber.Handler {
|
||||
|
||||
return func(c *fiber.Ctx) error {
|
||||
proxychain := proxychain.
|
||||
NewProxyChain().
|
||||
SetFiberCtx(c).
|
||||
SetRequestModifications(
|
||||
rx.AddCacheBusterQuery(),
|
||||
rx.MasqueradeAsGoogleBot(),
|
||||
rx.ForwardRequestHeaders(),
|
||||
rx.HideOrigin(),
|
||||
rx.DeleteOutgoingCookies(),
|
||||
rx.SpoofReferrerFromRedditPost(),
|
||||
)
|
||||
|
||||
// no options passed in, return early
|
||||
if opts == nil {
|
||||
// return as plaintext, overriding any rules
|
||||
proxychain.AddOnceResponseModifications(
|
||||
tx.SetResponseHeader("content-type", "text/plain; charset=UTF-8"),
|
||||
)
|
||||
|
||||
return proxychain.Execute()
|
||||
}
|
||||
|
||||
// load ruleset
|
||||
rule, exists := opts.Ruleset.GetRule(proxychain.Request.URL)
|
||||
if exists {
|
||||
proxychain.AddOnceRequestModifications(rule.RequestModifications...)
|
||||
proxychain.AddOnceResponseModifications(rule.ResponseModifications...)
|
||||
}
|
||||
|
||||
// return as plaintext, overriding any rules
|
||||
proxychain.AddOnceResponseModifications(
|
||||
tx.SetResponseHeader("content-type", "text/plain; charset=UTF-8"),
|
||||
)
|
||||
|
||||
return proxychain.Execute()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user