public static SvDataRaw Parse(Session session) { var reqBody = session.Response.BodyAsString.Replace("svdata=", ""); var result = new SvDataRaw(session.Request.BodyAsString, reqBody, session.Request.PathAndQuery); return(result); }
/// <summary> /// Nekoxy でフックした <see cref="Session" /> オブジェクトの <see cref="Session.Response" /> データを /// <see cref="SvDataRaw" /> 型にパースします。 /// </summary> public static IObservable <SvDataRaw> Parse(this IObservable <Session> source) { Func <Session, SvDataRaw> converter = session => { SvDataRaw result; return(SvDataRaw.TryParse(session, out result) ? result : null); }; return(source.Select(converter).Do(s => s.SendDb())); }
public static bool TryParse(Session session, out SvDataRaw result) { try { result = Parse(session); } catch (Exception ex) { Debug.WriteLine(ex); result = null; return(false); } return(true); }