public override void Build(Site site, dynamic obj)
		{
			Dictionary<string, object> data = new Dictionary<string, object>();

			if (Extras != null)
			{
				foreach (var extra in Extras)
				{
					data.Add(extra.Key, extra.Value);
				}
			}

			for (int i = From; i <= To; i += Interval)
			{
				site.AddStartRequest(new Request(string.Format(FormateString, i), 1, data)
				{
					PostBody = PostBody,
					Origin = Origin,
					Method = Method,
					Referer = Referer
				});
			}
		}
		public override void Build(Site site, dynamic obj)
		{
			BuildQueryString();

			int interval = 0;
			StringBuilder formatBuilder = new StringBuilder();

			var datas = PrepareDatas();

			foreach (var data in datas)
			{
				if (interval == Interval)
				{
					foreach (var formate in FormateStrings)
					{
						string tmpUrl = string.Format(formate, formatBuilder.ToString(0, formatBuilder.Length - (string.IsNullOrEmpty(RowSeparator) ? 0 : RowSeparator.Length)));
						site.AddStartRequest(new Request(tmpUrl, 0, null)
						{
							Method = Method,
							Origin = Origin,
							Referer = Referer
						});
					}

					interval = 0;
					formatBuilder = new StringBuilder();
				}

				Dictionary<string, object> tmp = data;

				StringBuilder argumentsBuilder = new StringBuilder();
				foreach (var column in Columns)
				{
					string value = tmp[column.Name]?.ToString();

					value = column.Formatters.Aggregate(value, (current, formatter) => formatter.Formate(current));

					argumentsBuilder.Append(value).Append(ColumnSeparator);
				}
				formatBuilder.Append(argumentsBuilder.ToString(0, argumentsBuilder.Length - (string.IsNullOrEmpty(ColumnSeparator) ? 0 : ColumnSeparator.Length))).Append(RowSeparator);
				interval++;

				if (interval != 0)
				{
					foreach (var formate in FormateStrings)
					{
						string tmpUrl = string.Format(formate, formatBuilder.ToString(0, formatBuilder.Length - 1));
						site.AddStartRequest(new Request(tmpUrl, 0, null)
						{
							Method = Method,
							Origin = Origin,
							Referer = Referer
						});
					}
				}
			}
		}
		public override void Build(Site site, dynamic obj)
		{
			foreach (JObject jobject in obj)
			{
				Dictionary<string, object> tmp = obj;

				if (Extras != null)
				{
					foreach (var extra in Extras)
					{
						tmp.Add(extra.Key, extra.Value);
					}
				}

				foreach (var node in jobject.Children())
				{
					tmp.Add("", node.ToString());
				}

				List<string> arguments = new List<string>();
				foreach (var column in Columns)
				{
					string value = tmp[column.Name]?.ToString();

					value = column.Formatters.Aggregate(value, (current, formatter) => formatter.Formate(current));
					arguments.Add(value);
				}

				foreach (var formate in FormateStrings)
				{
					string tmpUrl = string.Format(formate, arguments.Cast<object>().ToArray());
					site.AddStartRequest(new Request(tmpUrl, 0, tmp)
					{
						Method = Method,
						Origin = Origin,
						PostBody = GetPostBody(PostBody, tmp),
						Referer = Referer
					});
				}
			}
		}
		public override void Build(Site site, dynamic obj)
		{
			BuildQueryString();

			var datas = PrepareDatas();
			foreach (var data in datas)
			{
				for (int i = From; i <= To; i += Interval)
				{
					var arguments = PrepareArguments(data);
					arguments.Add(i.ToString());

					for (int j = PostFrom; j <= PostTo; j += PostInterval)
					{
						foreach (var formate in FormateStrings)
						{
							string tmpUrl = string.Format(formate, arguments.Cast<object>().ToArray());
							site.AddStartRequest(new Request(tmpUrl, 0, data)
							{
								Method = Method,
								Origin = Origin,
								PostBody = GetPostBody(PostBody, data, j),
								Referer = Referer
							});
						}
					}
				}
			}
		}