improve codegen for JSON serialization of response/request modifiers

This commit is contained in:
Kevin Pham
2023-12-04 11:10:55 -06:00
parent 7883b32335
commit c28470e619
5 changed files with 344 additions and 304 deletions

View File

@@ -34,11 +34,24 @@ func (rule *Rule) UnmarshalJSON(data []byte) error {
if err != nil {
return fmt.Errorf("Rule::UnmarshalJSON invalid function call syntax => '%s'", err)
}
f, exists := resModMap[name]
f, exists := rsmModMap[name]
if !exists {
return fmt.Errorf("Rule::UnmarshalJSON => responseModifer '%s' does not exist, please check spelling", err)
}
rule.ResponseModifications = append(rule.ResponseModifications, f(params...))
}
// convert responseModification function call string into actual functional option
for _, rqmModStr := range aux.RequestModifications {
name, params, err := parseFuncCall(rqmModStr)
if err != nil {
return fmt.Errorf("Rule::UnmarshalJSON invalid function call syntax => '%s'", err)
}
f, exists := rqmModMap[name]
if !exists {
return fmt.Errorf("Rule::UnmarshalJSON => requestModifier '%s' does not exist, please check spelling", err)
}
rule.ResponseModifications = append(rule.ResponseModifications, f(params...))
rule.RequestModifications = append(rule.RequestModifications, f(params...))
}
return nil

View File

@@ -1,184 +1,183 @@
package ruleset
package ruleset_v2
// DO NOT EDIT THIS FILE. It is automatically generated by ladder/proxychain/codegen/codegen.go
// The purpose of this is serialization of rulesets from JSON or YAML into functional options suitable
// for use in proxychains.
import (
"ladder/proxychain"
rx "ladder/proxychain/responsemodifiers"
rx "ladder/proxychain/requestmodifiers"
)
type ResponseModifierFactory func(params ...string) proxychain.ResponseModification
type RequestModifierFactory func(params ...string) proxychain.RequestModification
var resModMap map[string]ResponseModifierFactory
var rqmModMap map[string]RequestModifierFactory
// TODO: create codegen using AST parsing of exported methods in ladder/proxychain/responsemodifiers/*.go
func init() {
resModMap = make(map[string]ResponseModifierFactory)
rqmModMap = make(map[string]RequestModifierFactory)
resModMap["ForwardRequestHeaders"] = func(_ ...string) proxychain.ResponseModification {
return rx.ForwardRequestHeaders()
}
rqmModMap["ForwardRequestHeaders"] = func(_ ...string) proxychain.RequestModification {
return rx.ForwardRequestHeaders()
}
resModMap["MasqueradeAsGoogleBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsGoogleBot()
}
rqmModMap["MasqueradeAsGoogleBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsGoogleBot()
}
resModMap["MasqueradeAsBingBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsBingBot()
}
rqmModMap["MasqueradeAsBingBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsBingBot()
}
resModMap["MasqueradeAsWaybackMachineBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsWaybackMachineBot()
}
rqmModMap["MasqueradeAsWaybackMachineBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsWaybackMachineBot()
}
resModMap["MasqueradeAsFacebookBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsFacebookBot()
}
rqmModMap["MasqueradeAsFacebookBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsFacebookBot()
}
resModMap["MasqueradeAsYandexBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsYandexBot()
}
rqmModMap["MasqueradeAsYandexBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsYandexBot()
}
resModMap["MasqueradeAsBaiduBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsBaiduBot()
}
rqmModMap["MasqueradeAsBaiduBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsBaiduBot()
}
resModMap["MasqueradeAsDuckDuckBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsDuckDuckBot()
}
rqmModMap["MasqueradeAsDuckDuckBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsDuckDuckBot()
}
resModMap["MasqueradeAsYahooBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsYahooBot()
}
rqmModMap["MasqueradeAsYahooBot"] = func(_ ...string) proxychain.RequestModification {
return rx.MasqueradeAsYahooBot()
}
resModMap["ModifyDomainWithRegex"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyDomainWithRegex(params[0], params[1])
}
rqmModMap["ModifyDomainWithRegex"] = func(params ...string) proxychain.RequestModification {
return rx.ModifyDomainWithRegex(params[0], params[1])
}
resModMap["SetOutgoingCookie"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetOutgoingCookie(params[0], params[1])
}
rqmModMap["SetOutgoingCookie"] = func(params ...string) proxychain.RequestModification {
return rx.SetOutgoingCookie(params[0], params[1])
}
resModMap["SetOutgoingCookies"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetOutgoingCookies(params[0])
}
rqmModMap["SetOutgoingCookies"] = func(params ...string) proxychain.RequestModification {
return rx.SetOutgoingCookies(params[0])
}
resModMap["DeleteOutgoingCookie"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookie(params[0])
}
rqmModMap["DeleteOutgoingCookie"] = func(params ...string) proxychain.RequestModification {
return rx.DeleteOutgoingCookie(params[0])
}
resModMap["DeleteOutgoingCookies"] = func(_ ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookies()
}
rqmModMap["DeleteOutgoingCookies"] = func(_ ...string) proxychain.RequestModification {
return rx.DeleteOutgoingCookies()
}
resModMap["DeleteOutgoingCookiesExcept"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookiesExcept(params[0])
}
rqmModMap["DeleteOutgoingCookiesExcept"] = func(params ...string) proxychain.RequestModification {
return rx.DeleteOutgoingCookiesExcept(params[0])
}
resModMap["ModifyPathWithRegex"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyPathWithRegex(params[0], params[1])
}
rqmModMap["ModifyPathWithRegex"] = func(params ...string) proxychain.RequestModification {
return rx.ModifyPathWithRegex(params[0], params[1])
}
resModMap["ModifyQueryParams"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyQueryParams(params[0], params[1])
}
rqmModMap["ModifyQueryParams"] = func(params ...string) proxychain.RequestModification {
return rx.ModifyQueryParams(params[0], params[1])
}
resModMap["SetRequestHeader"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetRequestHeader(params[0], params[1])
}
rqmModMap["SetRequestHeader"] = func(params ...string) proxychain.RequestModification {
return rx.SetRequestHeader(params[0], params[1])
}
resModMap["DeleteRequestHeader"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteRequestHeader(params[0])
}
rqmModMap["DeleteRequestHeader"] = func(params ...string) proxychain.RequestModification {
return rx.DeleteRequestHeader(params[0])
}
resModMap["RequestArchiveIs"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestArchiveIs()
}
rqmModMap["RequestArchiveIs"] = func(_ ...string) proxychain.RequestModification {
return rx.RequestArchiveIs()
}
resModMap["RequestGoogleCache"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestGoogleCache()
}
rqmModMap["RequestGoogleCache"] = func(_ ...string) proxychain.RequestModification {
return rx.RequestGoogleCache()
}
resModMap["RequestWaybackMachine"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestWaybackMachine()
}
rqmModMap["RequestWaybackMachine"] = func(_ ...string) proxychain.RequestModification {
return rx.RequestWaybackMachine()
}
resModMap["NewCustomDialer"] = func(params, ...string) proxychain.ResponseModification {
return rx.NewCustomDialer(params[0])
}
rqmModMap["ResolveWithGoogleDoH"] = func(_ ...string) proxychain.RequestModification {
return rx.ResolveWithGoogleDoH()
}
resModMap["ResolveWithGoogleDoH"] = func(_ ...string) proxychain.ResponseModification {
return rx.ResolveWithGoogleDoH()
}
rqmModMap["SpoofOrigin"] = func(params ...string) proxychain.RequestModification {
return rx.SpoofOrigin(params[0])
}
resModMap["SpoofOrigin"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofOrigin(params[0])
}
rqmModMap["HideOrigin"] = func(_ ...string) proxychain.RequestModification {
return rx.HideOrigin()
}
resModMap["HideOrigin"] = func(_ ...string) proxychain.ResponseModification {
return rx.HideOrigin()
}
rqmModMap["SpoofReferrer"] = func(params ...string) proxychain.RequestModification {
return rx.SpoofReferrer(params[0])
}
resModMap["SpoofReferrer"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofReferrer(params[0])
}
rqmModMap["HideReferrer"] = func(_ ...string) proxychain.RequestModification {
return rx.HideReferrer()
}
resModMap["HideReferrer"] = func(_ ...string) proxychain.ResponseModification {
return rx.HideReferrer()
}
rqmModMap["SpoofReferrerFromBaiduSearch"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromBaiduSearch()
}
resModMap["SpoofReferrerFromBaiduSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromBaiduSearch()
}
rqmModMap["SpoofReferrerFromBingSearch"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromBingSearch()
}
resModMap["SpoofReferrerFromBingSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromBingSearch()
}
rqmModMap["SpoofReferrerFromGoogleSearch"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromGoogleSearch()
}
resModMap["SpoofReferrerFromGoogleSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromGoogleSearch()
}
rqmModMap["SpoofReferrerFromLinkedInPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromLinkedInPost()
}
resModMap["SpoofReferrerFromLinkedInPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromLinkedInPost()
}
rqmModMap["SpoofReferrerFromNaverSearch"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromNaverSearch()
}
resModMap["SpoofReferrerFromNaverSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromNaverSearch()
}
rqmModMap["SpoofReferrerFromPinterestPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromPinterestPost()
}
resModMap["SpoofReferrerFromPinterestPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromPinterestPost()
}
rqmModMap["SpoofReferrerFromQQPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromQQPost()
}
resModMap["SpoofReferrerFromQQPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromQQPost()
}
rqmModMap["SpoofReferrerFromRedditPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromRedditPost()
}
resModMap["SpoofReferrerFromRedditPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromRedditPost()
}
rqmModMap["SpoofReferrerFromTumblrPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromTumblrPost()
}
resModMap["SpoofReferrerFromTumblrPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromTumblrPost()
}
rqmModMap["SpoofReferrerFromTwitterPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromTwitterPost()
}
resModMap["SpoofReferrerFromTwitterPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromTwitterPost()
}
rqmModMap["SpoofReferrerFromVkontaktePost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromVkontaktePost()
}
resModMap["SpoofReferrerFromVkontaktePost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromVkontaktePost()
}
rqmModMap["SpoofReferrerFromWeiboPost"] = func(_ ...string) proxychain.RequestModification {
return rx.SpoofReferrerFromWeiboPost()
}
resModMap["SpoofReferrerFromWeiboPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromWeiboPost()
}
rqmModMap["SpoofUserAgent"] = func(params ...string) proxychain.RequestModification {
return rx.SpoofUserAgent(params[0])
}
resModMap["SpoofUserAgent"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofUserAgent(params[0])
}
rqmModMap["SpoofXForwardedFor"] = func(params ...string) proxychain.RequestModification {
return rx.SpoofXForwardedFor(params[0])
}
resModMap["SpoofXForwardedFor"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofXForwardedFor(params[0])
}
}
}

View File

@@ -1,184 +1,107 @@
package ruleset_v2
// DO NOT EDIT THIS FILE. It is automatically generated by ladder/proxychain/codegen/codegen.go
// The purpose of this is serialization of rulesets from JSON or YAML into functional options suitable
// for use in proxychains.
import (
"ladder/proxychain"
rx "ladder/proxychain/responsemodifiers"
tx "ladder/proxychain/responsemodifiers"
)
type ResponseModifierFactory func(params ...string) proxychain.ResponseModification
var resModMap map[string]ResponseModifierFactory
var rsmModMap map[string]ResponseModifierFactory
// TODO: create codegen using AST parsing of exported methods in ladder/proxychain/responsemodifiers/*.go
func init() {
resModMap = make(map[string]ResponseModifierFactory)
rsmModMap = make(map[string]ResponseModifierFactory)
resModMap["ForwardRequestHeaders"] = func(_ ...string) proxychain.ResponseModification {
return rx.ForwardRequestHeaders()
}
rsmModMap["APIContent"] = func(_ ...string) proxychain.ResponseModification {
return tx.APIContent()
}
resModMap["MasqueradeAsGoogleBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsGoogleBot()
}
rsmModMap["TestCreateAPIErrReader"] = func(params ...string) proxychain.ResponseModification {
return tx.TestCreateAPIErrReader(params[0])
}
resModMap["MasqueradeAsBingBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsBingBot()
}
rsmModMap["TestCreateAPIErrReader2"] = func(params ...string) proxychain.ResponseModification {
return tx.TestCreateAPIErrReader2(params[0])
}
resModMap["MasqueradeAsWaybackMachineBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsWaybackMachineBot()
}
rsmModMap["BlockElementRemoval"] = func(params ...string) proxychain.ResponseModification {
return tx.BlockElementRemoval(params[0])
}
resModMap["MasqueradeAsFacebookBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsFacebookBot()
}
rsmModMap["BypassCORS"] = func(_ ...string) proxychain.ResponseModification {
return tx.BypassCORS()
}
resModMap["MasqueradeAsYandexBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsYandexBot()
}
rsmModMap["BypassContentSecurityPolicy"] = func(_ ...string) proxychain.ResponseModification {
return tx.BypassContentSecurityPolicy()
}
resModMap["MasqueradeAsBaiduBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsBaiduBot()
}
rsmModMap["SetContentSecurityPolicy"] = func(params ...string) proxychain.ResponseModification {
return tx.SetContentSecurityPolicy(params[0])
}
resModMap["MasqueradeAsDuckDuckBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsDuckDuckBot()
}
rsmModMap["ForwardResponseHeaders"] = func(_ ...string) proxychain.ResponseModification {
return tx.ForwardResponseHeaders()
}
resModMap["MasqueradeAsYahooBot"] = func(_ ...string) proxychain.ResponseModification {
return rx.MasqueradeAsYahooBot()
}
rsmModMap["GenerateReadableOutline"] = func(_ ...string) proxychain.ResponseModification {
return tx.GenerateReadableOutline()
}
resModMap["ModifyDomainWithRegex"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyDomainWithRegex(params[0], params[1])
}
rsmModMap["InjectScriptBeforeDOMContentLoaded"] = func(params ...string) proxychain.ResponseModification {
return tx.InjectScriptBeforeDOMContentLoaded(params[0])
}
resModMap["SetOutgoingCookie"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetOutgoingCookie(params[0], params[1])
}
rsmModMap["InjectScriptAfterDOMContentLoaded"] = func(params ...string) proxychain.ResponseModification {
return tx.InjectScriptAfterDOMContentLoaded(params[0])
}
resModMap["SetOutgoingCookies"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetOutgoingCookies(params[0])
}
rsmModMap["InjectScriptAfterDOMIdle"] = func(params ...string) proxychain.ResponseModification {
return tx.InjectScriptAfterDOMIdle(params[0])
}
resModMap["DeleteOutgoingCookie"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookie(params[0])
}
rsmModMap["DeleteIncomingCookies"] = func(params ...string) proxychain.ResponseModification {
return tx.DeleteIncomingCookies(params[0])
}
resModMap["DeleteOutgoingCookies"] = func(_ ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookies()
}
rsmModMap["DeleteIncomingCookiesExcept"] = func(params ...string) proxychain.ResponseModification {
return tx.DeleteIncomingCookiesExcept(params[0])
}
resModMap["DeleteOutgoingCookiesExcept"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteOutgoingCookiesExcept(params[0])
}
rsmModMap["SetIncomingCookies"] = func(params ...string) proxychain.ResponseModification {
return tx.SetIncomingCookies(params[0])
}
resModMap["ModifyPathWithRegex"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyPathWithRegex(params[0], params[1])
}
rsmModMap["SetIncomingCookie"] = func(params ...string) proxychain.ResponseModification {
return tx.SetIncomingCookie(params[0], params[1])
}
resModMap["ModifyQueryParams"] = func(params, ...string) proxychain.ResponseModification {
return rx.ModifyQueryParams(params[0], params[1])
}
rsmModMap["SetResponseHeader"] = func(params ...string) proxychain.ResponseModification {
return tx.SetResponseHeader(params[0], params[1])
}
resModMap["SetRequestHeader"] = func(params, ...string) proxychain.ResponseModification {
return rx.SetRequestHeader(params[0], params[1])
}
rsmModMap["DeleteResponseHeader"] = func(params ...string) proxychain.ResponseModification {
return tx.DeleteResponseHeader(params[0])
}
resModMap["DeleteRequestHeader"] = func(params, ...string) proxychain.ResponseModification {
return rx.DeleteRequestHeader(params[0])
}
rsmModMap["PatchDynamicResourceURLs"] = func(_ ...string) proxychain.ResponseModification {
return tx.PatchDynamicResourceURLs()
}
resModMap["RequestArchiveIs"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestArchiveIs()
}
rsmModMap["PatchGoogleAnalytics"] = func(_ ...string) proxychain.ResponseModification {
return tx.PatchGoogleAnalytics()
}
resModMap["RequestGoogleCache"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestGoogleCache()
}
rsmModMap["PatchTrackerScripts"] = func(_ ...string) proxychain.ResponseModification {
return tx.PatchTrackerScripts()
}
resModMap["RequestWaybackMachine"] = func(_ ...string) proxychain.ResponseModification {
return rx.RequestWaybackMachine()
}
rsmModMap["RewriteHTMLResourceURLs"] = func(_ ...string) proxychain.ResponseModification {
return tx.RewriteHTMLResourceURLs()
}
resModMap["NewCustomDialer"] = func(params, ...string) proxychain.ResponseModification {
return rx.NewCustomDialer(params[0])
}
resModMap["ResolveWithGoogleDoH"] = func(_ ...string) proxychain.ResponseModification {
return rx.ResolveWithGoogleDoH()
}
resModMap["SpoofOrigin"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofOrigin(params[0])
}
resModMap["HideOrigin"] = func(_ ...string) proxychain.ResponseModification {
return rx.HideOrigin()
}
resModMap["SpoofReferrer"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofReferrer(params[0])
}
resModMap["HideReferrer"] = func(_ ...string) proxychain.ResponseModification {
return rx.HideReferrer()
}
resModMap["SpoofReferrerFromBaiduSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromBaiduSearch()
}
resModMap["SpoofReferrerFromBingSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromBingSearch()
}
resModMap["SpoofReferrerFromGoogleSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromGoogleSearch()
}
resModMap["SpoofReferrerFromLinkedInPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromLinkedInPost()
}
resModMap["SpoofReferrerFromNaverSearch"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromNaverSearch()
}
resModMap["SpoofReferrerFromPinterestPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromPinterestPost()
}
resModMap["SpoofReferrerFromQQPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromQQPost()
}
resModMap["SpoofReferrerFromRedditPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromRedditPost()
}
resModMap["SpoofReferrerFromTumblrPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromTumblrPost()
}
resModMap["SpoofReferrerFromTwitterPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromTwitterPost()
}
resModMap["SpoofReferrerFromVkontaktePost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromVkontaktePost()
}
resModMap["SpoofReferrerFromWeiboPost"] = func(_ ...string) proxychain.ResponseModification {
return rx.SpoofReferrerFromWeiboPost()
}
resModMap["SpoofUserAgent"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofUserAgent(params[0])
}
resModMap["SpoofXForwardedFor"] = func(params, ...string) proxychain.ResponseModification {
return rx.SpoofXForwardedFor(params[0])
}
}
}